gpt4 book ai didi

c# - MVVM 导航 ViewModel

转载 作者:行者123 更新时间:2023-11-30 16:45:44 24 4
gpt4 key购买 nike

我对 C# 比较陌生,正在学习这里的 MVVM 教程 https://www.tutorialspoint.com/mvvm/mvvm_hierarchies_and_navigation.htm

我在使用 MainWindowViewModel 时遇到问题

class MainWindowViewModel : BindableBase {

public MainWindowViewModel( ) {
NavCommand = new MyICommand<string>(OnNav);
}

private CustomerListViewModel custListViewModel = new CustomerListViewModel( );

private OrderViewModel orderViewModelModel = new OrderViewModel( );

private BindableBase _CurrentViewModel;

public BindableBase CurrentViewModel {
get { return _CurrentViewModel; }
set { SetProperty(ref _CurrentViewModel, value); }
}

public MyICommand<string> NavCommand { get; private set; }

private void OnNav(string destination) {

switch (destination) {
case "orders":
//CurrentViewModel = orderViewModelModel;
break;

case "customers":
default:
//CurrentViewModel = custListViewModel;
break;
}
}
}

我无法使用以上两行设置 CurrentViewModel 取消注释来构建应用程序。我得到:

  • 无法将类型“MVVMHierarchiesDemo.ViewModel.OrderViewModel”隐式转换为“MVVMHierarchiesDemo.BindableBase”

  • 无法将类型“MVVMHierarchiesDemo.ViewModel.CustomerListViewModel”隐式转换为“MVVMHierarchiesDemo.BindableBase”

我确实在前面的 (tutorualspoint) 教程中发现了错字/错误,但在层次结构教程中没有发现任何错误。

示例中是否存在我没​​有发现的问题?

最佳答案

您的 CurrentViewModel 属性属于 BindableBase 类型,因此您要分配给它的任何对象都应该是 BindableBase 或派生自它.

这就是为什么您必须将 : BindableBase 添加到类 CustomerListViewModelOrderViewModel 中的原因:

class OrderViewModel : BindableBase
{
//whatever
}

关于c# - MVVM 导航 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41540528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com