Me gustaría implementar un comportamiento "NullText" para un TextBlock que está vinculado a una propiedad en un ViewModel. Cuando esa propiedad en ViewModel es nula o está vacía, me gustaría mostrar el texto en cursiva gris algo así como "Sin datos". Me gustaría que esto siga el patrón MVVM pero estoy perdido ...¿Cómo implementar NullText en un TextBlock con enlace?
actualización Así que después de jugar un rato con la solución James Webster sugirió, lo tengo que trabajar así ...
<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>
¿Cuál es su punto de vista y la vista del modelo de código existente? – BoltClock
En realidad, ViewModel es una ObservableCollection de un objeto que es observable en sí mismo. Esta colección está vinculada a ItemsControl. Luego, en ItemsControl.Template, tengo un TextBlock vinculado a una propiedad del elemento en la colección. Si esa propiedad está vacía o nula, quiero que aparezca "Sin datos" en ItemsControl en la Vista. – Jim