2015-10-29 12 views
5

我的視圖模型公開了一個名爲MyList的列表,該列表可能爲空或null。基於這種狀態我有一個我想要隱藏的元素。如果MyList爲空或null,則該元素應該摺疊。如果它有元素,那麼它應該被顯示。在WPF中,由於空引用導致綁定失敗時使用的是FallbackValue嗎?

這裏是我的DataTrigger

<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0}" Value="0"> 
    <Setter Property="Visibility" Value="Collapsed"></Setter> 
</DataTrigger> 
  • 發生這種DataTrigger什麼時候MyListnull
  • 它會使用FallbackValue還是會失敗?
  • 這是否記錄在某處?

回答

6

如果綁定源路徑未解析,轉換器失敗,或者該值對該屬性的類型無效,則使用FallbackValue。

如果返回null,則不會使用它,除非null對於屬性類型無效。在這種情況下,DataTrigger不會被觸發。對於這種情況,您可以使用TargetNullValue。

<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0, TargetNullValue=0}" Value="0"> 
    <Setter Property="Visibility" Value="Collapsed"></Setter> 
</DataTrigger> 
相關問題