簡體   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