Creating a ObservableCollection<T> class
本文关键字:gt class lt ObservableCollection Creating | 更新日期: 2023-09-27 18:12:17
我有一个person
类,并想创建一个名为people
的ObservableCollection<person>
类。我见过一些类似实现的例子,但不完全理解它们之间的区别。例如:
public class people : ObservableCollection<person>
{
public people()
{
}
}
和
public class people
{
ObservableCollection<person> public people()
{
}
}
这些实现中的一个是从根本上错误的吗?我没有任何工作代码,但希望在正确的方向开始轻推。
编辑(每@Groky的建议):
我正在寻找创建一个ObservableCollection<Person>
。我想在绑定的MVVM设置中使用此集合。具体来说,我想将所有person的名字和姓氏绑定到一个自定义控件。
FIRST:创建这样一个类是不好的做法,还是我应该像@Groky建议的那样在视图模型中实现ObservableCollection ?
SECOND:使用ObservableCollection是解决这类问题的正确方法吗?
听起来你正在使用WPF的MVVM模式,并且你正在尝试创建一个ViewModel类。
正如前面的回答者所提到的,你的两个选项描述了1)继承2)委托。选择哪一个取决于你想要表达的含义。
如果您在逻辑上尝试向People集合添加某些内容,则会选择继承。然而,因为你暗示你想要绑定WPF中的附加属性,这对我来说意味着你没有在逻辑上向集合添加属性;更多的是在集合旁边添加属性。所以在这个例子中,你是在用WPF的术语创建一个ViewModel。
下面是一个例子:
public PeopleViewModel
{
public PeopleViewModel()
{
Items = new ObservableCollection<Person>();
}
public ObservableCollection<Person> Items { get; private set; }
public int NumberOfPeople
{
get { return Items.Distinct().Count; }
}
}
我认为您有几种选择,例如继承或委托模式。所以在第一个变体中,你有继承模式,在第二个组合,混合和方面模式。