SimpleMVVM和Generic ViewModelBase

时间:2014-07-21 12:18:22

标签: wpf mvvm viewmodel simple-mvvm

我最近发现了SimpleMVVM工具包,我正在尝试创建一个小的示例程序。我正在尝试创建一个CurrentViewModel参数,如下所示:

    private ViewModelBase<>  _CurrentViewModel;
    public ViewModelBase<>  CurrentViewModel
    {
        get { return _CurrentViewModel; }
        set
        {
            _CurrentViewModel= value;
            NotifyPropertyChanged(m => m.CurrentViewModel);
        }
    }

CurrentViewModel引用的任何对象都将扩展SimpleMVVM ViewModelBase类,如下所示:

public class HomeViewModel : ViewModelBase<HomeViewModel>
{ }

我遇到的问题是SimpleMVVM ViewModelBase需要一个类型T作为参数,我不知道如何创建参数CurrentViewModel,以便它可以接受任何ViewModel扩展ViewModelBase。

1 个答案:

答案 0 :(得分:0)

使用Generics&#39; <T>&#39;的一个问题是任何消费者都必须知道这种类型。如果您考虑向模型添加ICollection,您必须知道它是什么样的集合,以便您保持强类型。

唯一的例外是如果你定义一个本身是通用的类,然后可以将它的#s type属性传递给子类。即。

CustomCollection<T>
{
     ICollection<T> _foo;
}

要做你想要做的事情,需要一个单独的通用接口来封装你想要的CommonViewModel功能。

相关问题