我坚持将用户控件集成到 mvvm 应用程序中。
用户控件是一个自定义日历,不是使用 MVVM 原则编写的(我不想在 MVVM 中重新编写它)。
我有一个在用户控件中触发的鼠标按下事件(这是三个不同用户控件的组合)。
事件触发代码如下所示:
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,但正如我所说,我不能重写我的用户控件。
我知道这个事件会在树上冒泡,直到它被标记为已处理。我知道添加一个公共 void 方法来处理事件 - 我只是不确定如何首先实现对事件的拦截。