В моем проекте WPF я должен построить следующий DataGrid с CheckBox колонки:WPF DataGrid: DataGridCheckBoxColumn событий
XAML
<DataGrid AutoGenerateColumns="False" TargetUpdated="IsIntermediatePointFixedByBracketDataGrid_TargetUpdated">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding isFixedByBracket, NotifyOnTargetUpdated=True }" />
</DataGrid.Columns>
</DataGrid>
C#
private void IsIntermediatePointFixedByBracketDataGrid_TargetUpdated(object sender, DataTransferEventArgs e)
{
DataGrid dg = (DataGrid)sender;
if (dg.SelectedIndex != -1
&& ((IsFixedByBracketElement)dg.SelectedItem).isFixedByBracket != this.currentIntermediatePosition.isFixedByBracket[dg.SelectedIndex])
{
this.currentIntermediatePosition.isFixedByBracket[dg.SelectedIndex] =
((IsFixedByBracketElement)dg.SelectedItem).isFixedByBracket;
}
}
Когда я установите/снимите флажок, событие TargetUpdated выбрано, но значение изменяется только в том случае, если я выбираю и снимаю выделение соты, содержащей этот флажок. Почему это происходит? Как я могу изменить это поведение?
Wow Просто и ясно Спасибо! – FrancescoDS
Мне нужно что-то сделать, когда установлен флажок. Я заметил, что событие, вызванное событием TargetUpdated, но не полезно, потому что там всегда есть значение 0 для переменной DataGrid.selectedIndex ... и я не понимаю, почему. Является ли TargetUpdated правильным событием для просмотра? – FrancescoDS
И как я могу установить соответствующую строку флажка? – FrancescoDS