WPF CellEditingTemplate和重复事件
我有一个带有DataGridTemplateColumn的WPF DataGrid,如下所示:WPF CellEditingTemplate和重复事件,wpf,events,binding,datagridtemplatecolumn,celleditingtemplate,Wpf,Events,Binding,Datagridtemplatecolumn,Celleditingtemplate,我有一个带有DataGridTemplateColumn的WPF DataGrid,如下所示: <DataGridTemplateColumn IsReadOnly="False"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Path=MyProperty, Mode=OneWay}" /&g
<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事件会被调用几次……对于生成的控件的每个实例调用一次
复制该问题的示例项目:
例如,我只使用了TextChanged事件,但问题也可能发生在其他事件中(例如,UserControl中定义的事件)
有没有办法避免这种行为?
我希望销毁CellEditEnding上的“edit”控件,这样它就不会干扰我返回CellEditEnding时生成的新控件;如何操作?每次按键只能调用一次文本更改。你的问题是不可复制的。我创建了一个简单的应用程序,其中包含DataGrid和DataGridTemplateColumn…问题是可复制的;如果编辑同一单元格2次,则每次按键时事件都会被调用2次……以此类推(.NET 4.0)我无法复制它。虽然我不在.NET 4.0上,但官方支持的最旧版本是4.5.2,因此您可能应该更新。我尝试了4.5.2,但没有任何更改…这里有一个示例项目:TextChanged只应在每次按键时调用一次。你的问题是不可复制的。我创建了一个简单的应用程序,其中包含DataGrid和DataGridTemplateColumn…问题是可复制的;如果编辑同一单元格2次,则每次按键时事件都会被调用2次……以此类推(.NET 4.0)我无法复制它。虽然我不在.NET 4.0上,但官方支持的最旧版本是4.5.2,因此您可能应该进行更新。我尝试了4.5.2,但没有任何更改…下面是示例项目: