我在XAML中使用MVVM和嵌入模型,有些模型是独立构建的,但是其中一个模型在构建时需要引用另一个模型,因为db中的数据也需要引用它,我找不到一种在 XAML 中执行此操作的方法,XAML 是这样的:
<models:UserModel x:Key="UserModel"></models:UserModel>
<models:OrderModel x:Key="OrderModel">
<x:Arguments>
{StaticResource UserModel} // what tag to use here?
</x:Arguments>
</models:OrderModel>
有什么正确的方法可以做到这一点吗?
因为 StaticResource
是标记扩展,您可以通过 attribute usage, or element usage 使用它。
<models:OrderModel x:Key="OrderModel">
<x:Arguments>
<StaticResource Key="UserModel" />
</x:Arguments>
</models:OrderModel>
编辑 - 1
当您在 x:Arguments
中使用 StaticResource
时,它看起来就像是将扩展对象传递给构造函数;而不是为了值(value)解决它。解决此问题的最简单方法是向 OrderModel
添加属性以分配 UserModel
对象。
<local:UserModel x:Key="UserModel" />
<local:OrderModel x:Key="OrderModel" User="{StaticResource UserModel}"/>
我是一名优秀的程序员,十分优秀!