我有一种情况,我不确定是否正确。孩子ViewModel应该能够改变父ViewModel?
我有一个ApplicationViewModel
这是我的整个应用程序的“壳”。
而在该viewmodel我有其他child-ViewModels。
public ApplicationModelView()
{
ModelViewPages.Add(new GameViewModel());
ModelViewPages.Add(new EditGameViewModel());
//Set Current HomePage
CurrentPage = ModelViewPages[0];
}
#endregion
#region Properties
public BaseModelView CurrentPage
{
get { return _currentPage; }
set { _currentPage = value; OnPropertyChanged(); }
}
public List<BaseModelView> ModelViewPages
{
get
{
if (_modelViewPages == null){_modelViewPages = new List<BaseModelView>();}
return _modelViewPages;
}
}
#endregion
在我我从包含标题我的模型GamesModel
,描述等显示对象的列表
当我点击这个列表中的项目它也选择了,然后我想改变我用按钮查看EditGameViewModel
,但我不确定如何去做。
如何让我的child-ViewModel更改我的父视图模型中的内容? 或者孩子应该这样做吗?
编辑
当我选择一个项目,然后点击按钮,我从视图更改为EditGameViewModel
与我从列表中选择的数据我想要的。
public void EditGame(object param)
{
//MessageBox.Show("From EditGame Function"); HERE I WANT TO CHANGE THE VIEWMODEL ON MY APPLICATIONVIEWMODEL
}
public bool CanEditGame(object param)
{
return SelectedGame != null;
}
只是为了澄清:您希望显示GamesModel列表的面板/视图完全被所选EditGameViewModel的面板/视图替换?或者,您是否只想将单个选定项目的视图更改为GamesModel列表视图中的EditGameViewModel项目视图(基于您的简短代码示例,我相信这一点)?不幸的是,你的涂鸦对于解释你真正想要做什么不是很有帮助...... – elgonzo
@elgonzo添加了一张照片,希望能够解释更多我想要的内容。但我想用EditGameViewModel替换GamesModel列表并显示该视图。 – tutu
我明白了。你已经知道如何使用WPF中的命令? (命令对于将这种交互逻辑与你的视图模型“弱”联系起来是至关重要的) – elgonzo