Ich verwende eine IsNullConverter-Klasse in meinem Projekt und es hat bei mir funktioniert. Hier ist der Code dafür in c #. Erstellen Sie einen Ordner mit dem Namen Converter und fügen Sie diese Klasse in diesen Ordner ein, da der verwendete Trigger keinen Wert für statt null unterstützt, und IsNullConverter tut dies einfach
public class IsNullConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (value == null);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new InvalidOperationException("IsNullConverter can only be used OneWay.");
}
}
Fügen Sie den Namespace wie folgt in die xaml-Datei ein.
xmlns:Converters="clr-namespace:TymeSheet.Converter"
meint
xmlns:Converters="clr-namespace:YourProjectName.Converter"
Verwenden Sie diese Zeile unter den Ressourcen, um sie über den XAML-Code verfügbar zu machen
<Converters:IsNullConverter x:Key="isNullConverter" />
Hier ist der XAML-Code. Ich habe hier den Auslöser verwendet. Wenn also ein Element in der Combobox ausgewählt wird, wird die Sichtbarkeit Ihres Textes falsch.
<TextBlock Text="Select Project" IsHitTestVisible="False" FontFamily="/TimeSheet;component/Resources/#Open Sans" FontSize="14" Canvas.Right="191" Canvas.Top="22">
<TextBlock.Resources>
<Converters:IsNullConverter x:Key="isNullConverter"/>
</TextBlock.Resources>
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=ProjectComboBox,Path=SelectedItem,Converter={StaticResource isNullConverter}}" Value="False">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>