C# 自动完成组合框中的绑定文本属性

C# 自动完成组合框中的绑定文本属性,c#,wpf,c#-4.0,wpf-controls,binding,C#,Wpf,C# 4.0,Wpf Controls,Binding,有人能帮我解决组合框行为的问题吗。这是我的组合框控件(WPF): 所以这对我来说很好,但是我单击combobox中找到的任何项目,它会将其放入combobox.Text属性,即我所选对象的类型(在本例中为-Region)。当然,我可以为我的Region对象重写ToString()方法,并在那里设置它的公共属性名,这个解决方案工作得很好,但我认为最好的方法是找到如何将所选项绑定到combobox的文本属性中。有没有办法做到这一点 我已经尝试过ind Text=“{Binding Path=Name

有人能帮我解决组合框行为的问题吗。这是我的组合框控件(WPF):

所以这对我来说很好,但是我单击combobox中找到的任何项目,它会将其放入combobox.Text属性,即我所选对象的类型(在本例中为-Region)。当然,我可以为我的Region对象重写ToString()方法,并在那里设置它的公共属性名,这个解决方案工作得很好,但我认为最好的方法是找到如何将所选项绑定到combobox的文本属性中。有没有办法做到这一点


我已经尝试过ind Text=“{Binding Path=Name}”和/或SelectedItem=“{Binding Path=Name}”,但在这些情况下,总是得到空文本。请提供帮助。

您需要做的是为您的组合框设置
ItemTemplate
,但是如果您只想显示单个属性,有一种更简单的方法:设置
DisplayMemberPath=“Name”
在组合框中,它将为您生成正确的模板。

您需要做的是为您的组合框设置
ItemTemplate
,但是如果您只想显示单个属性,有一种更简单的方法:在组合框中设置
displaymberpath=“Name”
,它将为您生成正确的模板。

太好了!DisplayMemberPath=“Name”像一个符咒一样工作。但是,我不能同时使用DisplayMemberPath和ItemTemplate?否-ItemTemplate将覆盖DisplayMemberPath。基本上,使用DisplayMemberPath将创建一个模板,它是绑定到所选属性的文本块。太棒了!DisplayMemberPath=“Name”像一个符咒一样工作。但是,我不能同时使用DisplayMemberPath和ItemTemplate?否-ItemTemplate将覆盖DisplayMemberPath。基本上,使用DisplayMemberPath将创建一个模板,它是绑定到所选属性的文本块。
<ComboBox Grid.Row="1" Grid.Column="1" Margin="6,0,6,6" Name="comboBoxRegionTown" IsEditable="True" IsTextSearchEnabled="True"  PreviewKeyUp="comboBoxRegionTown_PreviewKeyUp" IsTextSearchCaseSensitive="False" />
  private void comboBoxRegionTown_PreviewKeyUp(object sender, System.Windows.Input.KeyEventArgs e)
    {
        if (!string.IsNullOrEmpty(comboBoxRegionTown.Text))
        {
            comboBoxRegionTown.ItemsSource = _br.GetQuery(x => x.Name.Contains(comboBoxRegionTown.Text) && x.RegionTypeId == (int)RegionType.Town).ToList();
            comboBoxRegionTown.IsDropDownOpen = true;
        }
        else
        {
            comboBoxRegionTown.ItemsSource = null;
        }
    }