wpf可编辑组合框的“提交”事件?

时间:2011-03-16 00:40:33

标签: c# wpf wpf-controls

所以我在我的wpf c#应用程序中有这个可编辑的组合框。当用户使用下拉列表时,我能够正确使用'SelectionChanged'事件。

但是,当用户在编辑框中“提交”其键入的文本时,我无法弄清楚如何获取事件。我尝试了'TextInput'事件,但似乎永远不会被触发(我只是用一个简单的Debug.WriteLine("test");调用一个函数)

我尝试过PreviewTextInput,但每个角色都会触发。我正在寻找类似用户输入他们想要的东西,点击Enter键或点击控件。

有什么想法吗?

1 个答案:

答案 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;
}