[英]Binding BooleanToVisibilityConverter to a Control in a TreeView HierarchicalDataTemplate
[英]Binding BooleanToVisibilityConverter to an enum in a View Model
我是一個視圖模型,我有:
public enum EventViewMode
{
View,
Update,
Insert
}
然后,在視圖中某些控件必須可見或不符合EventViewMode
的值。
對於布爾值,我使用了BooleanToVisibilityConverter
轉換器。
有沒有一種方法可以在綁定系統中使用表達式將枚舉值轉換為布爾表達式。
我的意思是,類似:
<Button x:Name="btnSave"
Visibility="{Binding MyVariable == EventViewMode.View , Converter={StaticResource booleanToVisibilityConverter}}" />
請注意, MyVariable == EventViewMode.View
不起作用,它用於顯示我想要的內容。
不,我不害怕。 您的選擇是
EventViewMode
例如,使用數據觸發器基於Enum值設置所需的屬性(在這種情況下為可見性)
<Button x:Name="btnSave" Visibility="{Binding MyVariable == EventViewMode.View , Converter={StaticResource booleanToVisibilityConverter}}"> <Button.Style> <Style TargetType={x:Type Button}> <Setter Property="Visibility" Value="Collapsed" /> <Style.Triggers> <DataTrigger Binding="{Binding MyVariable}" Value="View"> <Setter Property="Visibility" Value="Visible" /> </DataTrigger> </Style.Triggers> </Style> </Button.Style> </Button>
您可以簡單地在視圖模型中公開一個屬性:
public bool IsVisible { get { return MyVariable == EventViewMode.View; } }
更改MyVariable時,不要忘記引發IsVisible的屬性更改通知。
如果您不想污染您的視圖模型,那么下一個最簡單的選擇就是實現另一個值轉換器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.