我仍然试图围绕使用WPF和MVVM的一些细节。有一件事让我感到困惑的是如何从View中获取ViewModel中的值。让我解释一下这个场景。
我有一个窗口,里面有几个UserControl。其中一个UserControl的DependencyProperty
类型TimeSpan
名为CurrentTime
。它被绑定(在窗口的XAML中)到Window的ViewModel。
现在,我还有一个UserControl的ViewModel。它需要访问CurrentTime属性才能基于它创建对象。如何将这个值输入我的ViewModel?我看到了几个选项:
我错过了其他选择吗?以上哪一项(或我错过的)是最好的方法?
我通过this thread here on SO阅读,因为它是相似的,但答案并没有真正回答我的问题 - 我很乐意用绑定或命令或其他东西来做,但我无法弄清楚如何准确。
答案 0 :(得分:4)
第三个选项是前往此处的方式,但您必须在UserControl
的代码隐藏中指定绑定:
public partial class MyUserControl : UserControl
{
public MyUserControl() {
InitializeComponent();
SetBinding(MyPropertyProperty,
new Binding {Path = new PropertyPath("MyViewModelProperty"), Mode = BindingMode.OneWayToSource});
}
}