如何根据 属性 的值更改 TextBlock 的可见性
How to change a TextBlock's visibility based on a property's value
我已经设法让 TreeView 在 WPF 应用程序中工作。我正在使用 HierarchialDataTemplates 来显示数据。我的数据是一个车辆列表,其中每个车辆都有一个 Territory 属性.
有时领土 属性 为空。当车辆尚未分配给地理区域时会发生这种情况。
我希望在 TreeView 中的视觉表示应该是这样的:
Vehicle_Name (Territory_Name)
当 Vehicle.Territory 为空时,我希望删除 粗体 文本。如果它仍然存在,则车辆名称末尾会有这个奇怪的空括号。
我试过使用 DataTrigger,但粗体文本仍然存在,即使对于空 Territory 值也是如此。
<HierarchicalDataTemplate DataType="{x:Type self:TreeVehicleItem}" ItemsSource="{Binding ClientLocations}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" />
<TextBlock FontWeight="Bold" Padding="10 0 0 0">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Territory}" Value="x:Null">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
(<Run Text="{Binding Territory.Name}" />)
</TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
我已经验证 Territory
属性 确实是 Null
而不仅仅是一个空列表。
当 Territory 属性 为 Null 时,如何使粗体 TextBlock 消失?
这是字符串"x:Null"
Value="x:Null"
这是 markup extension NullExtension
,其中 returns 是实际的 null
。这就是你想要的。
Value="{x:Null}"
我已经设法让 TreeView 在 WPF 应用程序中工作。我正在使用 HierarchialDataTemplates 来显示数据。我的数据是一个车辆列表,其中每个车辆都有一个 Territory 属性.
有时领土 属性 为空。当车辆尚未分配给地理区域时会发生这种情况。
我希望在 TreeView 中的视觉表示应该是这样的:
Vehicle_Name (Territory_Name)
当 Vehicle.Territory 为空时,我希望删除 粗体 文本。如果它仍然存在,则车辆名称末尾会有这个奇怪的空括号。
我试过使用 DataTrigger,但粗体文本仍然存在,即使对于空 Territory 值也是如此。
<HierarchicalDataTemplate DataType="{x:Type self:TreeVehicleItem}" ItemsSource="{Binding ClientLocations}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" />
<TextBlock FontWeight="Bold" Padding="10 0 0 0">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding Territory}" Value="x:Null">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
(<Run Text="{Binding Territory.Name}" />)
</TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
我已经验证 Territory
属性 确实是 Null
而不仅仅是一个空列表。
当 Territory 属性 为 Null 时,如何使粗体 TextBlock 消失?
这是字符串"x:Null"
Value="x:Null"
这是 markup extension NullExtension
,其中 returns 是实际的 null
。这就是你想要的。
Value="{x:Null}"