WPF,怎么使用自定义的ListBoxItem控件
可以在ListBox的模板中设置ListBoxItem样式:
<Style x:Key="ListBoxStyle1" TargetType="{x:Type ListBox}">
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="ListBoxItem">
...
...
</Style>
</Setter.Value>
</Setter>
</Style>
现在的问题是,假如我创建了一个自定义的MyListBoxItem类(继承自ListBoxItem类,主要是修改了鼠标点击的默认事件),那该怎么在ListBox的控件模板中使用这个自定义的MyListBoxItem呢?
------解决方案--------------------从ListBox派生一个自定义类型
重写GetContainerForItemOverride(),返回你的自定义ListBoxItem的实例
大概就是这样吧:
public class MyListBox:ListBox
{
protected override DependencyObject GetContainerForItemOverride()
{
return new MyListBoxItem();
}
}
------解决方案--------------------<Style?TargetType="ListBoxItem">
改为你自己的类型即可
<Style?TargetType="local:MyListBoxItem">
这里的local是当前项目的命名空间,定义方式不用我说了吧。
------解决方案--------------------添加local的前缀解析:
<Style x:Key="ListBoxStyle1" TargetType="{x:Type local:MyListBox}">
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="local:MyListBoxItem">
...
...
</Style>
&nbs