我正在尝试创建一个ListBox,其中项目的文本绑定到其ItemSource中对象的regionName属性。这显示应该是,但是单击绑定创建的文本不会将ListBoxItem的状态更改为“selected”(尽管在文本选择项目后单击空格。)ListBox在我使用时按预期运行DisplayMemberBinding
属性或当我将Content
设置为DataTemplate中的随机静态文本时(单击文本选择ListBoxItem)。但是,我想使用转换器来设置单个项目的文本颜色(不同的项目将是不同的颜色),所以我似乎必须使用DataTemplate,它不能与{{1}一起使用属性。还有其他人遇到过这个问题吗?
列表框的XAML:
DisplayMemberBinding
答案 0 :(得分:2)
您需要使用Label或TextBlock而不是ListBoxItem。 ListBox将自动为您的DataTemplated数据生成容器。
有关项目容器生成的更多信息,请参阅here。
答案 1 :(得分:2)
将Datatemplate中的ListBoxItem替换为TextBlock或ContentControl。 ListBox本身生成了ListBox项,因此datatemplate中不必要的ListBoxItem会占用鼠标事件,这就是为什么你会看到所需的行为