Im新的MVVM,并有小问题。我有两个用户控件:父和子(有视图,视图模型,模型类)。并且需要将一些属性从父母传递给孩子。现在香港专业教育学院管理它通过写这样的代码:将属性从一个“视图”传递到MVVM中的其他视图的视图模型
public static readonly DependencyProperty CallbackActionProperty =
DependencyProperty.Register("CallbackAction", typeof (Action),
typeof (ChildView), new PropertyMetadata(default(Action)));
public Action CallbackAction
{
get { return (Action) GetValue(CallbackActionProperty); }
set
{
SetValue(CallbackActionProperty, value);
((ChildViewModel)this.DataContext).CallbackAction = value; // Change ViewModel property too
}
}
这是依赖属性在ChildView
和自己的一套我还设置了ViewModel
的财产。之后,我从ParentView
访问该依赖项属性,并设置CallbackAction
- >,它在Child's ViewModel中设置CallbackAction
。
代码:
this.Loaded += (sender, args) => childUc.CallbackAction = ((ParentViewModel) this.DataContext).RefreshStatuses;
childUc
是用户控件,位于亲和由ChildView
表示。 代码很难看,所以我希望在不破坏模式方面看到更好的做法。 谢谢。
问题是什么? –
@Mario Vernari,让事情试图描述的正确方法是什么? – 0x49D1