【问题标题】:Combobox: Get text and selected item in mvvm way组合框:以 mvvm 方式获取文本和选定项
【发布时间】:2018-04-06 08:40:30
【问题描述】:

组合框是可编辑的,因此用户也可以编写。我有两个用例:

  1. 当用户写入时,以 Lostfocus 方式从组合框中获取文本 盒子里有东西,当他按“Tab”时,我想要文本 从组合框中,我将值添加到 itemsSource 列表中。
  2. 当用户从组合框下拉列表中进行选择时,我想要那个 他一选择就选择了项目,这次我不选择 想以 Lostfocus 的方式拥有它,但有点像 PropertyChanged 方式。

我尝试了下面给出的代码:

 <ComboBox Margin="3" x:Name="Combobox" SelectedItem="{Binding SelectedPath, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Text="{Binding PathLocation, UpdateSourceTrigger=LostFocus, ValidatesOnNotifyDataErrors=True}" IsTextSearchEnabled="True" VerticalContentAlignment="Center" ItemsSource="{Binding SelectedPaths}" IsEditable="True" Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2" HorizontalAlignment="Stretch"/>

应用程序第一次启动时一切正常,但在一些交互之后出现了问题。当用户开始在组合框中键入时,组合框的 SelectedItem 属性会触发,这与我在第一个用例中想要的相反。

简而言之:当用户在组合框中写东西时,我希望以 Lostfocus 的方式拥有它,而当他从组合框的下拉列表中进行选择时,我希望以 PropertyChanged 的​​方式拥有它。

如果需要更多详细信息,请告诉我。

【问题讨论】:

    标签: wpf mvvm combobox


    【解决方案1】:

    我删除了“IsTextSearchEnabled”属性,但它也没有工作,然后我才知道组合框的“IsTextSearchEnabled”属性默认为 true,这导致组合框建议的一些值在我的属性中设置。一旦我将“IsTextSearchEnabled”设置为 false,它就可以正常工作了。

    【讨论】:

      猜你喜欢
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      相关资源
      最近更新 更多