J'utilise une classe IsNullConverter dans mon projet et cela a fonctionné pour moi. voici le code pour cela en c #, créez un dossier nommé Converter et ajoutez cette classe dans ce dossier, car le déclencheur utilisé ne prend pas en charge la valeur pour plutôt que null, et IsNullConverter fait juste cela
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.");
}
}
ajoutez l'espace de noms dans le fichier xaml comme ceci.
xmlns:Converters="clr-namespace:TymeSheet.Converter"
veux dire
xmlns:Converters="clr-namespace:YourProjectName.Converter"
utilisez cette ligne sous les ressources pour la rendre disponible via le code xaml
<Converters:IsNullConverter x:Key="isNullConverter" />
voici le code xaml, j'ai utilisé ici le déclencheur donc chaque fois qu'un élément est sélectionné dans la zone de liste déroulante, la visibilité de votre texte devient fausse.
<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>