更換DataGridCheckBoxColumn時更換DataGridCheckBoxColumn對包含一個複選框DataGridTemplateColumn時,我發現了一個奇怪的行爲。古怪的行爲與DataGridTemplateColumn
<sdk:DataGrid Grid.Column="0" IsReadOnly="{Binding IsInReadOnlyMode}">
<sdk:DataGrid.Columns>
<sdk:DataGridCheckBoxColumn Header="Sales" Binding="{Binding Path=Sales}" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
當DataGrid只讀時,複選框也被禁用。上面的代碼工作正確。
現在,如果我想用DataGridTemplateColumn來實現同樣的事情,複選框似乎沒有禁用本身在DataGrid處於只讀模式。其他
<sdk:DataGrid Grid.Column="0" IsReadOnly="{Binding IsInReadOnlyMode}">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Header="Sales" >
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<Grid>
<CheckBox>
<CheckBox.IsChecked>
<Binding Path="Sales" Mode="TwoWay"/>
</CheckBox.IsChecked>
</CheckBox>
</Grid>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<CheckBox>
<CheckBox.IsChecked>
<Binding Path="Sales" Mode="TwoWay"/>
</CheckBox.IsChecked>
</CheckBox>
</Grid>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
一件事我注意到,這可能有助於解釋這是內部DataGridCheckBoxColumn複選框始終被禁用,直到你真正雙擊含有細胞。只有在編輯模式下,我才能訪問複選框。
在我創建自己內部DataGridTemplateColumn該複選框,複選框似乎總是有效,可以打開和關閉,甚至沒有第一雙擊單元格中打勾。
順便說一句,我使用它在Silverlight4,但我敢肯定它必須在WPF相同。
有人可以向我解釋爲什麼這是好嗎? 謝謝,