2011-03-16 31 views
1

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

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

我试过了PreviewTextInput,但是会触发每个字符。我正在寻找类似用户输入他们想要的内容并点击回车键或点击关闭控件。

任何想法?

回答

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