2012-04-18 56 views
2

我點擊圖像/矩形控制在我的應用程序,並喜歡將它們連接代碼:編程在一個DataTemplate控制的電線事件處理

clickableimagecontrol.MouseUp += MouseUp_Handler 

我努力理解如何做的DataTemplates相同。我基本上需要找到模板應用於每個項目的位置,這樣我就可以插入我的鉤子。

我知道WPF建議使用某種類型的命令,但這需要更多的鍋爐代碼,更不用說圖像/矩形不支持命令,所以我不得不重做整個樣式的按鈕控件。

這可能嗎?

+0

似乎並不可能。使用這種基於反射的代碼來最小化基於命令的實現鍋爐板似乎是最好的折中: http://nerobrain.blogspot.co.uk/2012/01/wpf-events-to-command.html 還是關於10行代碼應該可以在一對夫婦中實現...... – 2012-04-18 13:17:10

+0

代碼中的連線似乎毫無意義,使用XAML有什麼問題? – 2012-07-23 05:02:38

回答

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; 
    }