2012-07-31 37 views
1

我有一個要求禁用行中的特定單元格,具體取決於同一行其他單元格中的值。xamdatagrid有條件地禁用列

WPF或WPF MVVM場景,這兩種解決方案都值得歡迎。

我試過都沒有作品!

回答

0

Thanks @Grenter。 我沒有通過實現Converter類並將其作爲靜態資源在我的xaml文件中解決。 此外,我發現我們可以使用單元更新或單元更新事件並在後面的xaml代碼中編寫一些代碼行,這通常是我不喜歡的。

但轉換器肯定是前進的方式。

非常感謝!

2

如果我理解正確。

您可能想看看Datagrid.Columns部分中的DataGridTemplateColumn(請參閱下面的代碼),因爲這允許您爲列/單元設置自己的模板,然後可以設置enabled屬性。以下只是一個簡單的解決方案,我將繼續這樣做,以便在更改啓用複選框時更新模型,從而啓用該行中的項目。

 <DataGrid Name="dgrgrid" AutoGenerateColumns="False">     
      <DataGrid.Columns> 
       <DataGridTemplateColumn Header="Name"> 
        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <TextBox Text="{Binding Name}" IsEnabled="{Binding Enabled}" /> 
         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 
       </DataGridTemplateColumn> 
       <DataGridTextColumn Header="Type" /> 
       <DataGridTextColumn Header="Size" /> 
       <DataGridTextColumn Header="Price" /> 
       <DataGridCheckBoxColumn Header="Row Enabled" Binding="{Binding Enabled}" /> 
      </DataGrid.Columns> 
     </DataGrid> 

爲我後面的代碼有一個類被稱爲奶酪,有一些屬性,你看到下面的一個簡單的觀察的集合。 (這是基本的M-V-VM技術)

+0

哦,還有一件事我錯過了,你可以綁定到同一行的其他列或值,然後使用轉換器(見下面的鏈接)從字符串值轉換爲可見性或真正的假允許您根據旁邊列中的值禁用列。 http://wpftutorial.net/ValueConverters.html – Grenter 2012-08-01 07:33:41