2010-01-02 79 views
0

我必須綁定到我的視圖模型一個CollectionViewSource視圖數據網格。 datagrid有一個CheckBoxColumn和三個TextColumns,每個綁定到視圖中項目的屬性。我也有一個布爾屬性「啓用」在視圖項目,我想用於使單個行中的複選框不可見。作爲一個額外的好處,同樣也會改變其他三列的前景色。但最重要的是不讓用戶檢查Enabled == false行中的複選框。就WPF數據網格個別複選框不可見

編輯:基於以下Stephen和Andrew的鏈接,我試圖添加一個值轉換器,如下面的代碼。由於某種原因,它不起作用。我現在正在一個CollectionView視圖上進行測試,該視圖有90個項目,其中所有項目的Enabled屬性都是false。所以我期望有89行與不可見覆選框和1行與可見覆選框。但是,所有90行都有可見的複選框。有任何想法嗎?

<tk:DataGrid x:Name ="gridClaims" 
      Grid.Row="0" 
      AutoGenerateColumns="False" 
      ItemsSource="{Binding ClaimViewModels.View}" 
      Width="350" 
      HrizontalAlignment="Left"> 

<tk:DataGrid.Resources> 
     <BooleanToVisibilityConverter x:Key="boolToVis" /> 
</tk:DataGrid.Resources> 

<tk:DataGrid.Columns> 
     <tk:DataGridCheckBoxColumn 
      CellStyle="{StaticResource SingleClickEditing}" 

      Binding="{Binding Path=Selected}" 
      Visibility="{Binding Path=Enabled, Converter={StaticResource boolToVis}}" 

      CanUserSort="False" /> 

</tk:DataGrid.Columns> 

回答

1

對於可見性功能方面,就需要你將使用和興田DataGrid的可見狀態綁定到你的DataContext對象的Enabled屬性一個BooleanToVisbility轉換器。

此外,前景色可能會在完全相同的方式來處理。

編輯:將鏈接添加到轉換器

+0

真棒,謝謝斯蒂芬。我需要了解更多關於轉換器,我看到他們提到了很多。有什麼好的例子或文章你會推薦? – 2010-01-02 15:29:30

+0

這裏有一個BooleanToVisibility轉換器的示例:http://www.wpftutorial.net/DataBindingOverview.html這絕對是要走的路。 – 2010-01-03 14:33:35

+0

感謝安德森和斯蒂芬的聯繫,好東西! – 2010-01-05 00:21:12