2013-06-04 78 views
0

如何實現以下目標:條件綁定不使用轉換器

<ComboBox 
IsEnabled="{Binding bVisibilty = AnotherCollection.Count > 0 ? true:false}"/> 

我可以使用一個轉換器,它會被轉換計數boolen,但有比無處不矯枉過正轉換器做的更好的方法。

+0

看起來不錯。一個轉換器,它接收一個Collection,並從mvvm中的Count屬性 –

+0

返回一個布爾值,把這個給虛擬機並且有一個bool來查看可見性 – Viv

+1

爲什麼downVote? – Simsons

回答

3

您可以使用樣式觸發器,像這樣:

<ComboBox > 
      <ComboBox.Style> 
       <Style TargetType="ComboBox"> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding AnotherCollection.Count}" Value="0"> 
          <Setter Property="Visibility" Value="Collapsed"/> 
         </DataTrigger> 
        </Style.Triggers> 
       </Style> 
      </ComboBox.Style> 
     </ComboBox> 

顯然AnotherCollection需要有一個ObservableCollection這樣的UI將被通知每次項目被添加\刪除它

+0

只要實現了'INotifyPropertyChanged',就不必是'ObservableCollection'。 –

2

你可以綁定到您的視圖模型屬性,並把布爾和INPC邏輯視圖模型