DataTemplated ListBox项目无法响应鼠标单击

时间:2010-02-23 16:44:00

标签: .net wpf xaml

我正在尝试创建一个ListBox,其中项目的文本绑定到其ItemSource中对象的regionName属性。这显示应该是,但是单击绑定创建的文本不会将ListBoxItem的状态更改为“selected”(尽管在文本选择项目后单击空格。)ListBox在我使用时按预期运行DisplayMemberBinding属性或当我将Content设置为DataTemplate中的随机静态文本时(单击文本选择ListBoxItem)。但是,我想使用转换器来设置单个项目的文本颜色(不同的项目将是不同的颜色),所以我似乎必须使用DataTemplate,它不能与{{1}一起使用属性。还有其他人遇到过这个问题吗?

列表框的XAML:

DisplayMemberBinding

2 个答案:

答案 0 :(得分:2)

您需要使用Label或TextBlock而不是ListBoxItem。 ListBox将自动为您的DataTemplated数据生成容器。

有关项目容器生成的更多信息,请参阅here

答案 1 :(得分:2)

将Datatemplate中的ListBoxItem替换为TextBlock或ContentControl。 ListBox本身生成了ListBox项,因此datatemplate中不必要的ListBoxItem会占用鼠标事件,这就是为什么你会看到所需的行为