簡體   English   中英

為什么bool在使用傳統綁定時沒有轉換器就可以實現可視性

[英]Why does bool work for visibility without a converter when using traditional binding

我之前和之前創建並使用bool到可見性轉換器,我忘了在綁定上使用轉換器(我正在使用傳統綁定)。 我將視圖中控件的visibility屬性綁定到視圖模型中的bool屬性,令人驚訝的是它可以工作。 所以我的問題是,如果它適用於傳統綁定,為什么我們需要使用轉換器? 因為看起來編譯器正在為我做轉換。

我在Visual Studio Update 3中的UWP應用程序上測試了它。最小應用程序目標是10.0.10586目標版本是10.0.14393

有趣。 這一直是一種痛苦,似乎沒有太多宣傳就修好了,我不知道這一點。

在WPF中,您總是必須使用ValueConverter,因為Visibility不是bool。

我剛從項目中的{x:Bind ...}中刪除了一個BooleanToVisibility轉換,實際上它仍然有效。 我從生成的代碼中挖出了這個:

private void Update_ViewModel_ShowMessage(global::System.Boolean obj, int phase)            
{
  ...
  this.Update_ViewModel_ShowMessage_Cast_ShowMessage_To_Visibility(
    obj ? global::Windows.UI.Xaml.Visibility.Visible 
        : global::Windows.UI.Xaml.Visibility.Collapsed
   , phase);
...
}

顯然它現在已經內置了。

更新:

對於{x:Bind }它在這里宣布,作為周年紀念更新的一部分。 而你確實需要針對14393或更高版本。 對於舊版本,它僅適用於{Binding ...}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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