Событие "Отправить" для редактируемого списка wpf? - PullRequest
1 голос
/ 16 марта 2011

Итак, у меня есть этот редактируемый комбинированный список в моем приложении wpf c #. Я могу правильно использовать событие SelectionChanged, когда пользователь использует раскрывающийся список.

Однако я не могу понять, как получить событие, когда пользователь «отправляет» свой набранный текст в поле редактирования. Я пробовал событие TextInput, но это никогда не срабатывает (я просто вызываю функцию с простым Debug.WriteLine("test");)

Я пробовал PreviewTextInput, но он срабатывает для каждого символа. Я ищу что-то вроде того, что пользователь вводит, что хочет, и нажимает клавишу Enter или щелкает элемент управления.

Есть идеи?

1 Ответ

1 голос
/ 16 марта 2011

Свяжите свойство 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...