Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > местонахождение обработчика прикрепляемого события


Автор: hexzo 26.9.2011, 16:35
Код
<ListView Button.Click="somedo">

Можно ли как-то указать местонахождение обработчика "somedo". Как-то нелогично все обработчики в классе главного окна содержать.

Автор: Gvozdin 26.9.2011, 17:14
Интересный вопрос, вообще XAML берет делегата для подписки. По крайней мере можно через MarkupExtension задать любой делегат для обработки.
Вот пример http://blogs.msdn.com/b/llobo/archive/2009/11/11/xaml-2009-features-xaml-event-handling.aspx.

Но способ экзотический.

Если делать по MVVM то надо или из код бехайнда вызывать метод в MV, или делать attached behavior для перенаправления.

Но думаю можно сделать универсальный "attached behavior":

Код

<ListView Button.Click="{Forward OnButtonClick}">


А ModelView у нас будет выглядеть так:
Код

    public class ModelView
    {
        public void OnButtonClick(RoutedEventArgs e)
        {
        }
    }


На досуге надо попробовать сделать, может быть полезным smile

Автор: Gvozdin 29.9.2011, 08:45
Случайно наткнулся на вариант решения проблемы http://joshsmithonwpf.wordpress.com/2007/08/06/handling-a-routed-event-in-any-class/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)