2011-03-16 54 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; 
}