WPF CellEditingTemplate和重复事件

时间:2017-04-24 10:28:03

标签: wpf events binding datagridtemplatecolumn celleditingtemplate

我有一个带有DataGridTemplateColumn的WPF DataGrid,如下所示:

<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>

我注意到每次进入单元格编辑时,都会生成一个新的文本框控件,因此,如果我开始键入一个字符,则会多次调用TextChanged事件...对于每个控件实例一次生成了!

重现问题的示例项目:TestEditingTemplate_4.5.2

我仅使用TextChanged事件作为示例,但问题也可能发生在其他事件中(例如,在UserControl中定义的事件)

有没有办法避免这种行为? 我想破坏&#34;编辑&#34;控制CellEditEnding,这样它就不会干扰我返回单元格编辑时生成的新控件;我怎么办?

0 个答案:

没有答案