Dot-Net
在值不等於的情況下如何使用數據觸發器
我在數據網格中有一個列’Delivery Boy’,它與後面的程式碼中的列表綁定。DataGrid 的值動態變化。
<DataTrigger Binding="{Binding Path=delivery_boy}" Value="Not Assigned"> <Setter Property="Foreground" Value="DarkRed"/> <Setter Property="Background" Value="Transparent"/> </DataTrigger>我可以在數據觸發器中使用“值”等於,在我希望“值”屬性為“不等於”的情況下如何使用數據觸發器
<DataTrigger Binding="{Binding Path=delivery_boy}" Value!="Not Assigned"> <Setter Property="Foreground" Value="White"/> <Setter Property="Background" Value="Green"/> </DataTrigger>
XAML中沒有
!=可用的運算符,因此您必須使用轉換器,或者您可以添加並綁定到您實現邏輯的另一個源屬性,例如:<DataTrigger Binding="{Binding IsAssigned}" Value="True"> ...public bool IsAssigned => delivery_boy != "Not Assigned";
不知道為什麼這被否決,這是一個完全有效的問題。
通常,您可以通過在 Style 中分配預設 Setter,然後僅使用 DataTriggers 來覆蓋這些以響應特定值,即:
<Style> <Setter Property="Foreground" Value="White"/> <!-- Default value --> <Setter Property="Background" Value="Green"/> <!-- Default value --> <Style.Triggers> <DataTrigger Binding="{Binding Path=delivery_boy}" Value="Not Assigned"> <Setter Property="Foreground" Value="DarkRed"/> <Setter Property="Background" Value="Transparent"/> </DataTrigger> </Style.Triggers> </Style>