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