[英]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.