的具體DataGid小區我有一個簡單DataGrid
有兩列像如何禁用新行
<DataGrid ItemsSource="{Binding Commands}" CanUserAddRows="True" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Value" Binding="{Binding Value}"/>
<DataGridTemplateColumn Header="Command">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding ComboItems}" SelectedValue="{Binding SelectedItem}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource ItemConverter}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
我的目標是禁用與新行的ComboBox
細胞。下圖顯示了我的DataGrid
(與兩個項目的ObservableCollection
綁定),禁用標記的列。
我已經嘗試使用轉換器禁用ComboBox
IsEnabled="{Binding Value, Converter={StaticResource DisableConverter}}"
但直到我進了第一列中的值轉換器沒有得到的調用。
希望有人能幫助我!
是的,我正在使用MVVM,ItemConverter只是一個測試,以檢查當公司nverter被調用,應該在顯示第1列的值時啓用組合框。 – Fruchtzwerg
因爲項目(視圖模型)還沒有創建 - 「新行」顯示將創建一個項目,如果我將值添加到第一列(所以我不能綁定到任何屬性,因爲沒有對象在後面)。這就是默認的DataGrid行爲,這基本上是我的問題。 – Fruchtzwerg
否,因爲「新行」是對象的默認行。這個對象是在我爲DataGrid設置一個值的時刻創建的。但是我想在創建Item之前禁用ComboBox。 (圖爲兩項ObservableCollection) – Fruchtzwerg