我在整个应用程序中都有可点击的图像/矩形控件,并且更喜欢用代码连接它们:
clickableimagecontrol.MouseUp += MouseUp_Handler
我很难理解如何使用datatemplates做同样的事情。我基本上需要找到模板应用于每个项目的位置,所以我可以插入我的钩子。
我知道WPF建议使用某种类型的命令,但这需要更多的样板代码,更不用说图像/矩形不支持命令,所以我不得不用样式化的按钮控件重做整个事情。
这可能吗?
答案 0 :(得分: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;
}