これらの2つのプロパティを持つモデルビューモデルがたくさんあることを思い出しました
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
でしょうか?
同じインターフェイスを2回継承するクラスを扱ったことはなく、どうすればよいかわかりません。
これはほんの一例に過ぎず、私が数百のプロパティを持っている VM を使用している VM は半分にも満たず、その多くは数十の画面を共有しています。すべてを BaseViewModel に貼り付けるよりも洗練されたソリューションが必要です