.net - 列表框中带有 TargetNullValue 的 DataTemplate

标签 .net wpf xaml targetnullvalue

我在列表框中有以下 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>

这完美地工作,显示“无”代替绑定(bind)列表中的任何空(无)值。问题是我无法单击 Null 值来选择它们。使用键盘进行选择可以完美地工作,而不是使用鼠标。我该怎么做才能使列表中的 Null 值像任何其他值一样起作用?

编辑:我还应该补充一点,我可以将 TextBlock 的背景更改为红色,并且它的显示方式和其他的一样,所以我认为这不是没有可点击的情况。我还用 Snoop 查看了它,在可视树中没有看到 Null 项和普通项之间有任何不同的属性。

编辑 2:我应该补充一点,People 实际上是一个表示数据库表的类。默认情况下,它使用 ToString 方法显示 People 对象。如果我使用 Path 选项绑定(bind)到正确的字段,我会得到相同的效果,我认为这会更容易阅读。

最佳答案

如果您正在寻找解决方案,也许您可​​以在这里找到您想要的:
Why can't I select a null value in a ComboBox?

Combobox 具有与 ListBox 相同的行为。

关于.net - 列表框中带有 TargetNullValue 的 DataTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/422078/

相关文章:

c# - 即使内容比容器高,WPF 控件也会对齐到底部

c# - 如何为动态创建的 TextBlock 提供点击(或点击)事件

c# - 根据绑定(bind)值使用不同的 XAML 模板

c# - 以编程方式导入带有私钥的证书

.NET 数据库访问 : Newest technology, 比较 (2011)

c# - xaml 中的类型转换

wpf - Windows 8.1 为桌面应用程序分配访问权限

.net - Entity Framework 不信任投票 - 与 .NET 4 相关吗?

.net - LINQ : Generics with IQueryable

.net - 从父控件设置 WPF 嵌套控件属性