我觉得我有很多具有这两个属性的模型视图模型
public Visibility OkButtonVisibility
{
get{ return _OkButtonVisibility;}
set{
_OkButtonVisibility = value;
RaisePropertyChanged("OkButtonVisibility");
}
}
public Visibility CancelButtonVisibility
{
get{ return _CancelButtonVisibility;}
set{
_CancelButtonVisibility = value;
RaisePropertyChanged("CancelButtonVisibility");
}
}
我想为它们创建可附加的界面,如下所示:
Interface IOKandCancelButtonsVM
{
public Visibility OkButtonVisibility
{
get{ return _OkButtonVisibility;}
set{
_OkButtonVisibility = value;
RaisePropertyChanged("OkButtonVisibility");
}
}
public Visibility CancelButtonVisibility
{
get{ return _CancelButtonVisibility;}
set{
_CancelButtonVisibility = value;
RaisePropertyChanged("CancelButtonVisibility");
}
}
并让我的视图模型使用它来继承它们以及具有像这样的代理属性的另一个接口
class VM1:BaseVM,IOKandCancelButtonsVM,IOtherCommonPropertyVM
{
}
但后来我发布了我的新界面并没有暗示INotifyChanged
。IOKandCancelButtonsVM
隐含INotifyChanged
并VM1
明确隐含会是一个坏主意BaseVM
吗?
我从来没有处理过两次继承相同接口的类并且不知道该怎么做。
这只是一个示例,只有不到一半的 VM 使用我拥有数百个属性的那些,其中许多在数十个屏幕上共享。我需要一个更优雅的解决方案,而不是把所有东西都粘在 BaseViewModel 中