Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Перенос обработчика события

#c_sharp #wpf #net #xaml


При создании обработчика события в xaml разметке, он появляется в файле name.xaml.cs.
Я хочу перенести этот обработчик в класс Editor. В конструкторе я написал DataContext
= new Editor(). Что мне нужно сделать, чтобы устанавливать из xaml, напрямую, обработчик
события из данного экземпляра класса Editor?
    


Ответы

Ответ 1



Синтаксис Event="Control_OnEvent" работает только для корневого класса, который и описывается в .xaml+.xaml.cs. Чтобы делегировать обработку другому объекту, просто вызовите соответствующий метод в этом обработчике: class MyWindow { Editor editor; MyWindow() { editor = new Editor(); } void Control_OnClick(object sender, EventArgs e) { editor.DoSomething(); } } Трогать DataContext не надо.

Ответ 2



Из XAML подписку уберите, а в коде пишите что-то типа такого: var editor = new Editor(); myButton.Click += editor.EventHandler; DataContext = editor;

Комментариев нет:

Отправить комментарий