【问题标题】:C# make ObservableCollection<T> in TemplateC# 在模板中制作 ObservableCollection<T>
【发布时间】:2017-05-16 05:51:57
【问题描述】:

我正在尝试做 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">

【问题讨论】:

  • 你有什么问题?

标签: wpf xaml combobox observablecollection visual-studio-2017


【解决方案1】:

属性不能定义通用约束。您需要有一个 Employee 和 Employer 的基类 - 例如人。这样,该集合可以同时容纳员工和雇主。

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

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

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

        _persons = value;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-07
    • 2015-12-27
    • 2023-03-09
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多