WPF CellEditingTemplate и дублированные события
У меня есть WPF DataGrid с DataGridTemplateColumn вроде этого:
<DataGridTemplateColumn IsReadOnly="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Text="{Binding Path=MyProperty, Mode=OneWay}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox
Text="{Binding Path=MyProperty, UpdateSourceTrigger=PropertyChanged}"
TextChanged="ctl_TextChanged" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
Я заметил, что каждый раз, когда я захожу в редактирование ячейки, генерируется новый элемент управления textbox и, следовательно, если я начинаю вводить символ, событие TextChanged вызывается несколько раз... по одному разу для каждого экземпляра сгенерированного элемента управления!
Пример проекта для воспроизведения проблемы: TestEditingTemplate_4.5.2
Я использовал событие TextChanged только для примера, но проблема может возникнуть и с другими событиями (например, событиями, определенными в UserControl)
Есть ли способ избежать такого поведения? Я хочу уничтожить элемент управления "edit" в CellEditEnding, чтобы он не мешал новому элементу управления, сгенерированному при возвращении к редактированию ячейки; Как я могу сделать?