如何格式化 TargetNullValue 属性?
How to format TargetNullValue property?
此 属性 在 ItemsControl
上实施。我需要将字符串的样式设置为斜体和灰色。
<ItemsControl ItemsSource="{Binding Source={StaticResource SettingsViewSource}, TargetNullValue= 'No setting available'}"
Background="Transparent"
HorizontalAlignment="Stretch"
Focusable="False">
不使用 TargetNullValue,而是使用带有 DataTrigger 测试的样式来检测 null:
<Style.Triggers>
<DataTrigger Binding="{Binding Source={StaticResource SettingsViewSource}}" Value="{x:Null}">
<Setter Property="FontStyle" Value="Italic" />
<Setter Property="Background" Value="Gray" />
</DataTrigger>
</Style.Triggers>
如果您想像 styling/formatting 那样拥有更多控制权并根据数据触发切换数据模板,请定义和清空数据模板。
例如
<ItemsControl ItemsSource="{Binding Source={StaticResource SettingsViewSource}}"
Background="Transparent"
HorizontalAlignment="Stretch"
Focusable="False">
<ItemsControl.ItemTemplate>
<DataTemplate>
//Define your data template here.
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.Style>
<Style TargetType="ItemsControl">
<Style.Triggers>
<Trigger Property="HasItems" Value="false" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBlock Text="This Control is empty"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</ItemsControl.Style>
<ItemsControl>
注意:使用HasItems属性判断ItemsControl是否包含项目
此 属性 在 ItemsControl
上实施。我需要将字符串的样式设置为斜体和灰色。
<ItemsControl ItemsSource="{Binding Source={StaticResource SettingsViewSource}, TargetNullValue= 'No setting available'}"
Background="Transparent"
HorizontalAlignment="Stretch"
Focusable="False">
不使用 TargetNullValue,而是使用带有 DataTrigger 测试的样式来检测 null:
<Style.Triggers>
<DataTrigger Binding="{Binding Source={StaticResource SettingsViewSource}}" Value="{x:Null}">
<Setter Property="FontStyle" Value="Italic" />
<Setter Property="Background" Value="Gray" />
</DataTrigger>
</Style.Triggers>
如果您想像 styling/formatting 那样拥有更多控制权并根据数据触发切换数据模板,请定义和清空数据模板。
例如
<ItemsControl ItemsSource="{Binding Source={StaticResource SettingsViewSource}}"
Background="Transparent"
HorizontalAlignment="Stretch"
Focusable="False">
<ItemsControl.ItemTemplate>
<DataTemplate>
//Define your data template here.
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.Style>
<Style TargetType="ItemsControl">
<Style.Triggers>
<Trigger Property="HasItems" Value="false" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBlock Text="This Control is empty"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</ItemsControl.Style>
<ItemsControl>
注意:使用HasItems属性判断ItemsControl是否包含项目