2017-01-09 13 views
2

私は私が上記2で構築するためのアプリケーションを取得することはできませんMainWindowViewModelMVVMのナビゲートのviewmodels

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; 
     } 
    } 
} 

で問題が発生していますC#にやや新しいここMVVMのチュートリアルをhttps://www.tutorialspoint.com/mvvm/mvvm_hierarchies_and_navigation.htm

を働いていますCurrentViewModelを非コメントに設定します。私は取得しています:

  • は、暗黙のうちに 'MVVMHierarchiesDemo.BindableBase'

  • に型 'MVVMHierarchiesDemo.ViewModel.OrderViewModel' を変換できません暗黙的にタイプを変換できません 'MVVMHierarchiesDemo.ViewModel.CustomerListViewModel' 'MVVMHierarchiesDemo.BindableBase' に

私は前の(tutorualspoint)チュートリアルのタイプミス/バグを見つけましたが、階層のチュートリアルで間違った何も表示されません。

この例では表示されない問題がありますか?

+6

は、あなたが 'CustomerListViewModel'と' OrderViewModel'クラスはBindableBase' 'から派生作られましたか? – AymenDaoudi

+0

ありがとうございます。これは一度に多くの概念であり、私は小さな事に執着し続けています。 – Joe

+0

あなたはようこそ。 – AymenDaoudi

答えて

0

私は理由を知りませんが、試してみることができます。 CustomerListViewModel.csで

  • クラスOrderViewModel :BindableBase

    {

    } OrderViewModel.csで

  • クラスまたはderViewModel :BindableBase

    {

    }

+0

彼はそれらをCurrentViewModelに割り当てようとしている可能性があります。これは***は*** BindableBaseです。 – Rafalon

0

あなたCurrentViewModelプロパティは、タイプBindableBaseであるので、あなたはそれに割り当てる任意のオブジェクトは、BindableBaseであるか、またはそれから派生する必要がありますどちらか。あなたはあなたのようなクラスCustomerListViewModelOrderViewModel: BindableBaseを追加する必要が理由です

class OrderViewModel : BindableBase 
{ 
    //whatever 
} 
関連する問題