【问题标题】:WPF Combobox isEditable bind entry to listWPF Combobox isEditable 将条目绑定到列表
【发布时间】:2017-02-11 00:08:43
【问题描述】:

我有一个组合框,我希望用户能够在组合框中输入他们的选择。我将它设置为可编辑的,但用户可以输入他们想要的任何条目。虽然说列表包含狗,猫,鸟。用户可以输入 Snaked 代替。我怎样才能阻止这种情况?

        <ComboBox IsEditable="True" Grid.Column="2" Grid.Row="1" Margin="5,3,0,0"
                  Text="{Binding Model.Number}" ItemsSource="{Binding DList}"
                  SelectedItem="{Binding Model.Number}"
                  IsEnabled="{Binding EnableComboBox}" 
                  VerticalAlignment="Top">

        </ComboBox>

【问题讨论】:

  • 我没看懂'我希望用户能够输入他们想要的选项,因为长度'这句话。你能详细说明一下吗?
  • 所以你想要组合框中的一个条目,当它被选中时,组合框变成可编辑的?
  • 为清晰起见已更新

标签: c# wpf validation combobox


【解决方案1】:

设为只读,这将停止打字功能。如果在 VS 中,您可以在组合框的属性部分执行此操作。

【讨论】:

    【解决方案2】:

    我怎样才能阻止这种情况?

    将IsEditable 属性设置为false,将IsTextSearchEnabled 属性设置为true:

    <ComboBox IsEditable="False" ItemsSource="{Binding DList}" IsTextSearchEnabled="True" />
    

    如果您只希望用户能够选择 Items 集合中实际存在的内容,那么将可编辑的 ComboBox 和 TextBox 设置为没有多大意义。

    如果ComboBox 绑定到IEnumerable&lt;T&gt;,您可以将TextSearch.TextPath 属性设置为T 类型的属性的名称:

    <ComboBox IsEditable="False" ItemsSource="{Binding Animals}" IsTextSearchEnabled="True" TextSearch.TextPath="AnimalName" />
    

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 2010-10-08
      • 2014-09-04
      • 1970-01-01
      • 2017-12-07
      • 2016-04-30
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      相关资源
      最近更新 更多