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