将列表类型实现为可观察集合

时间:2015-11-27 08:22:04

标签: c# wpf

我有一个界面

    grace
    paul
    mang juan

我想为我的视图模型实现它并对集合进行一些绑定。如何在实现的类中实现与可观察集合相同的List

public interface IEmployee
{
   List<Job> Jobs{get;set;}
}

我不允许更改接口,因为它是由其他类实现的。如何需要在View中显示作业并使用仅在可观察集合中可用的集合更改通知。

3 个答案:

答案 0 :(得分:0)

错误是因为ObservableCollection<T>未从List<T>继承。但是你可能不需要在界面中List<T>。我认为IEmployee接口设计不正确。 IEmployee的用户需要从列表中获得什么?如果他们只需要迭代它,请在IEnumerable<Jobs>中使用IEmployee

如果IEmployee的用户也需要Count媒体资源,则可以在Jobs中将ICollection<Jobs>声明为IEmployeeObservableCollection<T>确实实施了ICollection<T>

顺便说一下,你确定班级名称应该是Jobs而不是Job吗? Jobs是一个类的奇怪名称。

答案 1 :(得分:0)

这可能会为你做到这一点

public class Employee : IEmployee
{
    public JobCollection Jobs { get; set; }
    public Employee()
    {
        Jobs = new JobCollection();
    }
}

public class JobCollection : ObservableCollection<Job>
{

}

答案 2 :(得分:-2)

这是正确的解决方案:

public interface IEmployee
{
  ObservableCollection<Jobs> Jobs { get; set; }
}