繁体   English   中英

SimpleMVVM和通用ViewModelBase

[英]SimpleMVVM and Generic ViewModelBase

我最近找到了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以便它可以接受任何扩展ViewModelBase的ViewModel。

使用泛型' <T> '的问题之一是,任何使用者都必须仍然知道类型。 如果考虑将ICollection添加到模型中,则必须知道它是ICollection的集合,以便保持强类型。

唯一的例外是,如果定义的类本身是通用的,则可以将它的type属性传递给子类。

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

要执行您想做的事情,将需要一个单独的通用接口,该接口封装了您想要的CommonViewModel功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM