C# 在模板中制作 ObservableCollection<T>

C# make ObservableCollection<T> in Template

我正在尝试做 Combobox,它可以显示一些 2 类, - 员工 - 雇主 显然,两者 类 都有 EditAble 变量

  private ObservableCollection<Employer> _itemsEmployer
  private ObservableCollection<Employee> _itemsEmployee
  public ObservableCollection<T>  Items, where T : Employee, Employer
    {
        get
        {
            return _itemsEmployee;
        }

        set
        {
            if (_itemsEmployee == value)
            {
                return;
            }

            _itemsEmployee = value;
        }
    }

组合框:

<ComboBox x:Name="cbx" 
                      IsTextSearchEnabled="True" 
                      TextSearch.Text="EditAble"
                      ItemsSource="{Binding Items}" IsEditable="True" 
                      DisplayMemberPath="EditAble"
                      Text="{Binding AddedText,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" 
                      Canvas.Left="78" Canvas.Top="48" Width="259">

属性不能定义通用约束。您需要有一个 Employee 和 Employer 的基础 class - 例如人。这样集合就可以同时包含 Employees 和 Employers。

private ObservableCollection<Person> _persons = new ObservableCollection<Person>();

public ObservableCollection<Person> Items
{
    get
    {
        return _persons;
    }

    set
    {
        if (value == _persons)
        {
            return;
        }

        _persons = value;
    }
}