Вы можете сделать это без кода, используя IValueConverter
.
<Grid>
<ComboBox
x:Name="comboBox1"
ItemsSource="{Binding MyItemSource}" />
<TextBlock
Visibility="{Binding SelectedItem, ElementName=comboBox1, Converter={StaticResource NullToVisibilityConverter}}"
IsHitTestVisible="False"
Text="... Select Team ..." />
</Grid>
Здесь у вас есть класс конвертера, который вы можете использовать повторно.
public class NullToVisibilityConverter : IValueConverter
{
#region Implementation of IValueConverter
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value == null ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
И, наконец, вам нужно объявить свой конвертер в разделе ресурсов.
<Converters:NullToVisibilityConverter x:Key="NullToVisibilityConverter" />
Где Конвертеры - это место, где вы разместили класс конвертеров. Пример:
xmlns:Converters="clr-namespace:MyProject.Resources.Converters"
Очень приятная вещь в этом подходе - отсутствие повторения кода в вашем коде.