如何为组合框中的TextBox注册TextChanged事件
本文关键字:TextBox 注册 TextChanged 事件 组合 | 更新日期: 2023-09-27 18:00:32
我们知道comboBox是TextBox、Button和其他UI元素的组合。我的问题是如何为ComboBox中的TextBox注册TextChanged事件。组合框只包含PreviewTextInput和TextInput事件,但我想处理TextChangedEvent。编辑:1我的组合框是一个可编辑的组合框
编辑:2当用户在组合框中输入文本时,我想检查它是否为双值。我的comboBox中只允许使用双值。
提前感谢。
如果扩展ComboBox
类,则可以覆盖OnPropertyChanged
方法。每次更改ComboBox
的任何属性时,都会调用此方法,包括Text
属性。试试这个:
public partial class MyComboBox : ComboBox
{
public MyComboBox()
{
InitializeComponent();
}
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
{
base.OnPropertyChanged(e);
if (e.Property.Name.Contains("Text"))
{
// The Text property value has changed
}
}
}
您可以为ComboBox项目使用自定义模板,如下所示:
<ComboBox>
<ComboBox.ItemTemplate>
<DataTemplate>
<!--Your items with whatever-->
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
但是,SelectionChanged
事件应该告诉您何时更改了选择,从而更改了文本。