2012-04-18 2 views
2

У меня есть элементы управления, изображение/прямоугольник в течение моего приложения и предпочитают соединять их в коде:Программным обработчик проволоки событие элемента управления в DataTemplate

clickableimagecontrol.MouseUp += MouseUp_Handler 

Я изо всех сил, чтобы понять, как сделать то же самое с DataTemplates , Мне в основном нужно найти место, где шаблон применяется к каждому элементу, поэтому я могу вставить мои крючки.

Я знаю, что WPF рекомендует использовать команды какого-либо типа, но для этого требуется больше кода котельной, не говоря уже о том, что изображение/прямоугольники не поддерживают команды, поэтому мне придется переделать все это с помощью стильных кнопок ,

Возможно ли это?

+0

Не представляется возможным. Использование этого кода на основе отражения, чтобы свести к минимуму командную реализацию, является наилучшим компромиссом: http://nerobrain.blogspot.co.uk/2012/01/wpf-events-to-command.html Все еще о 10 строк кода для того, что должно выполняться в паре, хотя ... –

+0

Проводка в коде кажется вроде бессмысленной, в чем проблема с использованием XAML? –

ответ

1

Пожалуйста, см работоспособное решение:

private void ElementKeyUp(object source, KeyEventArgs args) 
    { 
     throw new NotImplementedException(); 
    } 

    private DataTemplate GetDataTemplate() 
    { 
     var result = new DataTemplate(); 

     var factory = new FrameworkElementFactory(typeof(ListViewItem)); 

     var handler = new KeyEventHandler(ElementKeyUp); 

     factory.AddHandler(KeyUpEvent, handler); 

     result.VisualTree = factory; 

     return result; 
    } 
Смежные вопросы