我在我的应用程序中使用MVVM模式。基本上我有一个主视图和几个子视图。
在主ViewModel中,我有每个子ViewModel的实例。现在处于主ViewModel的一个事件中。
我有
private void Child_B_Grid_SelectedRowChanged(object sender, EventArgs e)
{
Child_C_ViewModel.SelectedItem = Child_B_ViewModel.SelectedItem;
}
public object SelectedItem
{
get
{
return this.selectedItem;
}
set
{
if (value != this.selectedItem)
{
this.selectedItem = value;
this.OnPropertyChanged("SelectedItem");
}
}
}
它可以运行,之后程序返回到子视图C.我想使用我刚刚在代码后面的按钮事件中使用的SelectedItem。
private void btn_Click(object sender, RoutedEventArgs e)
{
this.ViewModel.Save();
}
但SelectedItem
为空。不确定为什么?
答案 0 :(得分:0)
糟糕
添加View加载事件后,我得到了值。
private void View_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
if (this.DataContext is ViewModel)
{
this.ViewModel = this.DataContext as ViewModel;
}
else
{
this.DataContext = this.ViewModel;
}
}
最初我没有Load事件。我不确定为什么需要它。原始我只是把代码放在构造函数中,如:
InitializeComponent();
this.DataContext = this.ViewModel;