簡體   English   中英

將BooleanToVisibilityConverter綁定到視圖模型中的枚舉

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM