2014-03-02 85 views
0

我使用DataGrid,我有一列有Checkbox。我希望只要有一行有密鑰,複選框將被禁用,以便用戶無法取消選中它。 我在我的視圖模型中有一個屬性,名爲IsKeyINotifyPropertyChanged。我怎樣才能做到這一點?數據網格複選框禁用未檢查的密鑰選項

IsChecked結合是開始 的DataGrid和用戶可以取消行,除了按鍵...

<DataGridTemplateColumn.CellTemplate> 
    <DataTemplate> 
     <CheckBox x:Name="CheckBox" 
      IsChecked="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged}"/> 
    </DataTemplate> 
</DataGridTemplateColumn.CellTemplate> 
+0

更新IsEnabled屬性與轉換器的幫助。 –

回答

1

假設IsKeybool可以使用Style.Triggers所以當IsKey是當所有的Checkboxes檢查真正集IsEnabled爲false:

<CheckBox x:Name="CheckBox" IsChecked="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged}"> 
    <CheckBox.Style> 
     <Style TargetType="{x:Type CheckBox}"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=IsKey}" Value="True"> 
        <Setter Property="IsEnabled" Value="False"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </CheckBox.Style> 
</CheckBox> 
+0

完美..我喜歡它:) –