我在列表框中有以下 DataTemplate
<ListBox Grid.Column="1" Grid.Row="2" ItemsSource="{Binding People}" SelectedItem="{Binding SelectedPerson}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock OverridesDefaultStyle="True"
Background="{x:Null}"
Margin="0"
Padding="0"
IsHitTestVisible="True"
Text="{Binding TargetNullValue=None}"
/>
</DataTemplate>
</ListBox.ItemTemplate>
这完美地工作,显示“无”代替绑定列表中的任何空(无)值。问题是我无法单击 Null 值来选择它们。使用键盘进行选择可以完美地工作,而不是使用鼠标。我该怎么做才能使列表中的 Null 值像任何其他值一样起作用?
编辑:我还应该补充一点,我可以将 TextBlock 的背景更改为红色,它的显示方式和其他的一样,所以我认为这不是没有可点击的情况。我也用 Snoop 查看了它,在可视树中没有看到 Null 项目和普通项目之间有任何不同的属性。
编辑2:我应该补充一点,人实际上是一个代表数据库表的类。默认情况下,它使用 ToString 方法显示 People 对象。如果我使用 Path 选项绑定到正确的字段,我会得到相同的效果,我认为这会更容易阅读。