我在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>
有没有正确的方法呢?
答案 0 :(得分:3)
由于StaticResource
是标记扩展程序,您可以通过attribute usage, or element usage
<models:OrderModel x:Key="OrderModel">
<x:Arguments>
<StaticResource Key="UserModel" />
</x:Arguments>
</models:OrderModel>
编辑 - 1
在StaticResource
中使用x:Arguments
时看起来 - 它只是将扩展对象传递给构造函数;而不是为了价值而解决它。解决此问题的最简单方法是向OrderModel
添加属性以分配UserModel
对象。
<local:UserModel x:Key="UserModel" />
<local:OrderModel x:Key="OrderModel" User="{StaticResource UserModel}"/>