首页 > 解决方案 > 在 wpf 中作为组合框项的组合框内的文本框

问题描述

我在 WPF 中有一个组合框。我把TextBox它作为ComboBoxItem. 现在我希望ComboBoxItem在我输入时被过滤TextBox

<ComboBox Grid.Column="1"  Grid.Row="1" Margin="23,8,22,29" Name="comboBox1" DropDownOpened="comboBox1_DropDownOpened">
  <ComboBoxItem>
    <TextBox Name="texcombo" Width="90" Foreground="Gray"  GotFocus="texcombo_GotFocus" KeyDown="texcombo_KeyDown" TextChanged="texcombo_TextChanged"  >جستجو</TextBox>
  </ComboBoxItem>                  
  <ComboBoxItem>سلام</ComboBoxItem>
  <ComboBoxItem>خوبی</ComboBoxItem>
  <ComboBoxItem>عرض ادب</ComboBoxItem>
  <ComboBoxItem>سپاسگذارم</ComboBoxItem>
  <ComboBoxItem>مرسی</ComboBoxItem>                   
</ComboBox>

我怎样才能做到这一点?

标签: c#wpf

解决方案


您在 ComboBox 中实现文本框的方式是错误的。首先,您应该更改组合框默认模板以在其中显示特定的文本框,而不是将文本框放在项目中。然后你应该将一个可观察的集合(用于数据)绑定到 ComboBox 项。现在您可以根据 TextBox TextChanged 事件或命令过滤 ObservableCollection。


推荐阅读