ฉันใช้คลาส IsNullConverter ในโปรเจ็กต์ของฉันและมันใช้ได้ผลสำหรับฉัน นี่คือรหัสสำหรับมันใน c # สร้างโฟลเดอร์ชื่อ Converter และเพิ่มคลาสนี้ในโฟลเดอร์นั้นเนื่องจากทริกเกอร์ที่ใช้ไม่รองรับค่ามากกว่า null และ IsNullConverter ก็ทำเช่นนั้น
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.");
}
}
เพิ่มเนมสเปซในไฟล์ xaml เช่นนี้
xmlns:Converters="clr-namespace:TymeSheet.Converter"
หมายถึง
xmlns:Converters="clr-namespace:YourProjectName.Converter"
ใช้บรรทัดนี้ด้านล่างทรัพยากรเพื่อให้ใช้งานได้ผ่านรหัส xaml
<Converters:IsNullConverter x:Key="isNullConverter" />
นี่คือรหัส xaml ฉันใช้ทริกเกอร์ที่นี่ดังนั้นเมื่อใดก็ตามที่มีการเลือกรายการในกล่องผสมความสามารถในการแสดงผลข้อความของคุณจะกลายเป็นเท็จ
<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>