在WPF自定义控件中ListBox而不是ItemsPresenter?

时间:2010-01-26 13:54:58

标签: wpf custom-controls generics controltemplate

我正在为我的WPF自定义控件编写通用控件模板。 但是ItemsPresenter只有原始的数据列表.. 与ListBox相比,ListBox具有我需要的所有功能。

使用ListBox代替ItemsPresenter是否错误?

我追求的是那个 如果我编写一个使用ListBox的通用模板,并且在后面的代码中我注册了一些ListBox特定事件,而有人用他自己的Template覆盖我的通用ControlTemplateItemsControl ItemsPresenter 1}}里面没有那个事件,它会引发异常。在{{1}}的情况下,每个人都可以使用他想要的东西。

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你可以添加一些测试来查看模板中的ItemsControl是否是ListBox。例如:

var itemsControl = this.Template.FindName("PART_Items", this);
if(itemsControl is ListBox)
{
  // wire additional event handler here
}