我正在使用MVVM模式在WPF/C#中编写表单,并尝试与用户控件共享数据。 (好吧,用户控件 View 模型)
我要么需要:
用户控件仅用于使大型表单更易于管理,因此我不确定这是否是MVVM的方法,这就是我过去的做法。
我想通过Xaml中的VM结构类。
<TabItem Header="Applicants">
<Views:ApplicantTabView>
<UserControl.DataContext>
<ViewModels:ApplicantTabViewModel Client="{Binding Client} />
</UserControl.DataContext>
</Views:ApplicantTabView>
</TabItem>
public ClientComp Client
{
get { return (ClientComp)GetValue(ClientProperty); }
set { SetValue(ClientProperty, value); }
}
public static readonly DependencyProperty ClientProperty = DependencyProperty.Register("Client", typeof(ClientComp),
typeof(ApplicantTabViewModel),
new FrameworkPropertyMetadata
(null));
但是我似乎无法获得依赖属性来接受非静态内容。
这对我来说已经是一个问题了,但是假设我会发现但是失败了,所以我在这里。
提前致谢,
奥利
最佳答案
我最近回答了一个与您类似的问题:passing a gridview selected item value to a different ViewModel of different Usercontrol
本质上是设置一个依赖项属性,该属性允许父 View 中的数据保留到子用户控件中。实际上,将 View 抽象为特定的用户控件并使用依赖项属性和MVVM模式进行挂钩非常强大,建议在Silverlight/WPF开发中使用它,尤其是在进行单元测试时。如果您想进一步澄清,请告诉我,希望这会有所帮助。
关于wpf - 将数据传递到mvvm用户控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9548812/