我想为绑定到ViewModel中的属性的TextBlock实现“ NullText”行为。当ViewModel中的该属性为null或为空时,我想显示类似“ 无数据”的灰色斜体文本。我希望它遵循MVVM模式,但我迷路了...
更新因此,在试用了詹姆斯·韦伯斯特(James Webster)建议的解决方案之后,我就可以像这样工作了……]
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<c:NullOrEmptyValueConverter x:Key="NullOrEmptyValueConverter" Text="(No Data)"/>
</UserControl.Resources>
...
<TextBlock Name="SerialNumberTextBlock" Text="{Binding Path=SerialNumber, Converter={StaticResource NullOrEmptyValueConverter}}">
<TextBlock.Resources>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=SerialNumberTextBlock, Path=Text}" Value="(No Data)">
<Setter Property="FontStyle" Value="Italic"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Resources>
</TextBlock>
我想为绑定到ViewModel中的属性的TextBlock实现“ NullText”行为。当ViewModel中的该属性为null或为空时,我想显示灰色斜体...
我建议实现一个IValueConverter
;如果源值不为null或为空,则将其传递给TextBlock。如果源值为null或为空,则呈现您选择的文本。
我认为您不需要创建Converter类,只需编写这样的样式代码。
您可以尝试绑定到看起来如此的属性
晚会很晚,但这是我的答案。