2

我在整个应用程序中都有可点击的图像/矩形控件,并且更喜欢将它们连接到代码中:

clickableimagecontrol.MouseUp += MouseUp_Handler

我正在努力理解如何对数据模板做同样的事情。我基本上需要找到模板应用于每个项目的位置,这样我就可以插入我的钩子。

我知道 WPF 建议使用某种类型的命令,但这需要更多样板代码,更不用说图像/矩形不支持命令,所以我不得不用样式按钮控件重做整个事情。

这可能吗?

4

1 回答 1

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;
    }
于 2012-11-01T09:09:48.857 回答