【问题标题】:"Submit" event for wpf editable combobox?wpf可编辑组合框的“提交”事件?
【发布时间】:2011-03-16 00:40:32
【问题描述】:

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

但是,当用户在编辑框中“提交”他们键入的文本时,我无法弄清楚如何获取事件。我已经尝试过“TextInput”事件,但这似乎从未被触发(我只是用一个简单的Debug.WriteLine("test"); 调用一个函数)

我尝试过 PreviewTextInput,但每个字符都会触发它。我正在寻找类似用户键入他们想要的内容并按 Enter 键或单击控件的内容。

有什么想法吗?

【问题讨论】:

    标签: c# wpf wpf-controls


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多