首页 > 解决方案 > 基于对象的组合框选择项目

问题描述

所以我在做一个小客户管理程序,只是为了学习。

我有一个“客户”类,其中包含:姓名、姓氏、年龄、性别等等。我从 Json 文件加载我的数据并用它填充一个 Observable 集合。现在如下面的屏幕截图所示,我想要一个组合框来显示我选择的客户的性别及其工作。问题是 ComboBox 有很多选项可供选择,因为我在我的 Observable 集合中获得了客户。所以我想用我的组合框编辑我选择的客户的性别,因此它应该只有 2 个选项可供选择:男性,女性。

XAML:

绑定路径客户是我的 Observable 集合的名称。

<ComboBox x:Name="ComboBoxGender" 
                          ItemsSource="{Binding Path=Customers}"
                          DisplayMemberPath="Gender"
                          SelectedValuePath="Gender"
                          SelectedValue="{Binding Path=SelectedCustomer.Gender}"
                          Grid.Row="3" HorizontalAlignment="Right" 
                          VerticalAlignment="Center" 
                          Height="20" Width="130" Margin="0,0,5,0">
                </ComboBox>

在此处输入图像描述

谢谢你的帮助!(对不起我的语法不好..)

标签: c#wpfcombobox

解决方案


所以我现在运行良好。我改变了我的客户类别:

int Age {get; set;}
....
public Gender _Gender { get; set; }

public enum Gender
{
   Male, Female
}

我改变了我的 XAML:

<ComboBox x:Name="ComboBoxGender"
                          ItemsSource="{Binding Genderlist}"
                          DisplayMemberPath="_Gender"
                          SelectedValuePath="_Gender"                       
                          SelectedValue="{Binding SelectedCustomer._Gender}"
                          Grid.Row="3" HorizontalAlignment="Right" 
                          VerticalAlignment="Center" 
                          Height="20" Width="130" Margin="0,0,5,0">
                </ComboBox>

我的项目来源是:

private ObservableCollection<Customer> _genders = new ObservableCollection<Customer>();

public MainModel()
        {
            _genders.Add(new Customer { _Gender = Customer.Gender.Herr });
            _genders.Add(new Customer { _Gender = Customer.Gender.Frau });
        }

现在它工作正常,只适用于将来有同样问题的人:)


推荐阅读