Как обработать пользовательское RoutedEvent, запущенное из UserControl из ViewModel?

В настоящее время у меня есть usercontrol, который запускает зарегистрированное RoutedEvent, как это:

    protected virtual void OnScrollEvent(object oldValue, object newValue)
    {
        AssociatedObject.RaiseEvent(new DateTimeEventArgs(OnVisualChartRangeChangedEvent, minDate, maxDate));
    }

Контейнер mainwindow в настоящее время обрабатывает это событие, вызывая метод из представления, подобного этому.

<Grid>
    <historicChart:HistoricChartControl behaviours:ChartBehavior.OnVisualChartRangeChanged="RoutedEventHandler"/>
</Grid>

и код позади...

    private void RoutedEventHandler(object sender, DateTimeEventArgs dateTimeEventArgs)
    {
               //do stuff here...
    }

Но я хотел бы, чтобы это соответствовало модели MVVM, чтобы в моем обработчике была реализована модель представления, а не представление.

Как я могу это сделать? Может ли кто-нибудь опубликовать мне краткий пример того, как я могу это сделать?

Заранее спасибо

1 ответ

Вы можете использовать CallMethodAction для вызова вашего обработчика ViewModel.

Посмотрите, как создать EventTrigger для вашего пользовательского RoutedEvent: Пользовательское RoutedEvent как EventTrigger

Другие вопросы по тегам