C# 如何编辑组合框以及如何从列表中选择项目

C# 如何编辑组合框以及如何从列表中选择项目,c#,wpf,combobox,C#,Wpf,Combobox,我使用的组合框显示从10到70的数字。我还想编辑该文本,它必须得到反映。因此,我在MyProperty和组合框文本属性之间进行了绑定。 为了避免每次字符更新,我将UpdateSourceTrigger设置为LostFocus。现在,按Enter键后,编辑的文本将被反射。但现在从列表中选择项目时,它并没有更新并等待失去焦点。 如何克服这个问题?当编辑时,它应该在失去焦点后更新,但当从列表中选择项目时,它应该立即更新。而不是执行UpdateSourceTrigger=LostFocus您可以执行以下

我使用的组合框显示从10到70的数字。我还想编辑该文本,它必须得到反映。因此,我在MyProperty和组合框文本属性之间进行了绑定。 为了避免每次字符更新,我将UpdateSourceTrigger设置为LostFocus。现在,按Enter键后,编辑的文本将被反射。但现在从列表中选择项目时,它并没有更新并等待失去焦点。
如何克服这个问题?当编辑时,它应该在失去焦点后更新,但当从列表中选择项目时,它应该立即更新。

而不是执行
UpdateSourceTrigger=LostFocus
您可以执行以下操作:

Text="{Binding MyProperty, Delay=500}"

使用
Delay
可以在更新发生之前设置延迟。这有助于打字。对于我的应用程序,通常500毫秒(1/2秒)有效。

这有点难。绑定中有一个选项,将updatesourcetrigger设置为显式,然后按您想要的方式控制它。但可悲的是,当你更改文本时,它也会触发selectionchanged事件。除非键入的值超出组合框项目的范围,否则它将继续触发。是的,我注意到…但在MS word中,字体大小组合框按预期工作…我期待MS WordWell的相同行为MS word完全不同的应用程序。它不是用WPF开发的,而是C++开发的。在WPF中,您可以编辑combobox的控件模板,但这不是一项容易的任务。