インターフェイスINetworkAwareがあり、すべてのクラスがイベントに登録するように強制するメソッドを宣言する必要があります
現在プリズムイベントアグリゲーターを使用している実装は次のとおりです。
protected override void SetupEvents()
{
RegisterForEvent<PatientSelected>(OnPatientSelected);
base.SetupEvents();
}
SetupEventsメソッドは、ViewModelbaseクラスで仮想として宣言されています。状況によっては、上記のINetworkAwareインターフェイスが必要であり、ViewModelBaseから派生して、ネットワークの変更(ネットワークオフライン/オンライン)をリッスンし、INetworkAwareインターフェイスを実装することに関心がある場合は、これに登録するように強制するメカニズムが必要です。同じプリンシパルを使用するイベント。たとえば、クラスを作成する場合
public class PatientInformationViewModel : ViewModelBase, INetworkAware
{
protected override void SetupEvents()
{
RegisterForEvent<PatientSelected>(OnPatientSelected);
base.SetupEvents();
}
INetworkAware.ListenForNetworkChange
{
RegisterForEvent<NetworkChangeEvent>(OnNetworkChange)
}
OnNetworkChange(NetworkChangeEvent networkstatus)
{
}
}
NetworkChangeEventはサンプルPOCOクラスです
INetworkAware.ListenForNetworkChangeおよびOnNetworkChange(NetworkChangeEvent networkstatus)は、INetworkawareから派生し、同じ署名を持つすべてのビューモデルに実装する必要があります。
このシナリオをどのように達成できますか