ユーザー コントロールを mvvm アプリケーションに統合することに行き詰まっています。
ユーザー コントロールはカスタム カレンダーであり、MVVM の原則を使用して書かれたものではありません (MVVM で書き直したくありません)。
ユーザーコントロールで発生するマウスダウンイベントがあります(これは3つの異なるユーザーコントロールの組み合わせです)。
イベント起動コードは次のようになります。
public static readonly RoutedEvent DateEvent =
EventManager.RegisterRoutedEvent("dateEvent", RoutingStrategy.Bubble,
typeof(RoutedEventHandler), typeof(UserControl2));
public event RoutedEventHandler dateEvent
{
add{AddHandler(DateEvent, value);}
remove{ RemoveHandler(DateEvent, value);}
}
private void UserControl_MouseUp(object sender, MouseButtonEventArgs e)
{
RaiseEvent(new RoutedEventArgs(UserControl2.DateEvent, this));
}
メイン アプリのビューモデルでこのルーティング イベントをサブスクライブするにはどうすればよいですか? 私はそれがMVVMではないことを知っていますが、私が言ったように、ユーザーコントロールを書き直すことはできません。
このイベントは、処理済みとしてマークされるまでツリーをバブルアップすることを知っています。イベントを処理するために public void メソッドを追加することを知っています。そもそもイベントのインターセプトを実装する方法がわかりません。