所以我在我的wpf c#应用程序中有这个可编辑的组合框。当用户使用下拉列表时,我能够正确使用'SelectionChanged'事件。
但是,当用户在编辑框中“提交”其键入的文本时,我无法弄清楚如何获取事件。我尝试了'TextInput'事件,但似乎永远不会被触发(我只是用一个简单的Debug.WriteLine("test");
调用一个函数)
我尝试过PreviewTextInput,但每个角色都会触发。我正在寻找类似用户输入他们想要的东西,点击Enter键或点击控件。
有什么想法吗?
答案 0 :(得分:1)
将Text
属性绑定到基础DataContext
。
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1">
<Window.DataContext>
<local:Contact/>
</Window.DataContext>
<StackPanel>
<ComboBox Text="{Binding MyValue}" IsEditable="True"/>
<TextBlock Text="{Binding MyValue}"/>
</StackPanel>
</Window>
底层对象应该实现INotifyPropertyChanged
:
public class Contact : INotifyPropertyChanged
{
private string _MyValue;
public string MyValue
{
get { return _MyValue; }
set
{
_MyValue = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("MyValue"));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}