Tôi đang sử dụng lớp IsNullConverter trong dự án của mình và nó phù hợp với tôi. đây là mã cho nó trong c #, hãy tạo một thư mục có tên Converter và thêm lớp này vào thư mục đó, vì trình kích hoạt được sử dụng không hỗ trợ giá trị thay vì null và IsNullConverter chỉ làm điều đó
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.");
}
}
thêm không gian tên trong tệp xaml như thế này.
xmlns:Converters="clr-namespace:TymeSheet.Converter"
có nghĩa
xmlns:Converters="clr-namespace:YourProjectName.Converter"
sử dụng dòng này bên dưới các tài nguyên để làm cho nó có sẵn thông qua mã xaml
<Converters:IsNullConverter x:Key="isNullConverter" />
đây là mã xaml, tôi đã sử dụng trình kích hoạt ở đây để bất cứ khi nào một mục được chọn trong hộp kết hợp, độ hiển thị của văn bản của bạn sẽ trở thành sai.
<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>