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

180
25 июля 2017, 16:05

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

Answer 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 не надо.

Answer 2

Из XAML подписку уберите, а в коде пишите что-то типа такого:

var editor = new Editor();
myButton.Click += editor.EventHandler;
DataContext = editor;
READ ALSO
Чтение данных из Excel в С#

Чтение данных из Excel в С#

Доброго всем дня! Подскажите как обратится к уже открытой книге Excel если она открыта в отдельном окне, то-есть Excel файлы могут быть открыты...

443
c# древо папок visual studio

c# древо папок visual studio

Народ подскажите есть задача, есть папка где есть подпапки и в них ссылки, мне нужно сделать wpf приложение разделенное визуально на две части,...

493
Вопросы моделирования: Entity или ValueObject (DDD)?

Вопросы моделирования: Entity или ValueObject (DDD)?

Имеется сущность "Клиент" (Customer)Клиент может иметь 1 номер мобильного телефона и 1 адрес электронной почты

233
Запись/чтение файла Guitar Pro (*.gtp) с помощью c#

Запись/чтение файла Guitar Pro (*.gtp) с помощью c#

Может какую-нибудь либу посоветуетеили просто принцип работы с такими файлами

342