我们知道comboBox是TextBox,Button和其他UIElements的组合。 我的问题是如何为ComboBox内的TextBox注册TextChanged事件。 ComboBox只包含PreviewTextInput和TextInput事件,但我想处理TextChangedEvent。 编辑:1我的comboBox是一个可编辑的组合框
编辑:2当用户在ComboBox中输入文本时,我想检查它是否是双精度值。我的comboBox中只允许使用double值。
先谢谢。
答案 0 :(得分:1)
如果扩展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
}
}
}
答案 1 :(得分:0)
您可以为ComboBox项使用自定义模板,如下所示:
<ComboBox>
<ComboBox.ItemTemplate>
<DataTemplate>
<!--Your items with whatever-->
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
但是,SelectionChanged
事件应该告诉您选择何时更改,因此文本已更改。