我必须在WPF中构建一个聊天应用程序;我想使用DataBinding(仍在学习它...)并希望以正确的方式进行。 我用这种方式建立了一个Buddy课程:
public class Buddy: INotifyPropertyChanged
{
private String _name;
private String _status;
public String Name
{
get
{
return _name;
}
set
{
_name = value;
NotifyPropertyChanged("Name");
}
}
public String Status
{
get
{
return _status;
}
set
{
_status = value;
NotifyPropertyChanged("Status");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
我不知道哪个是处理BuddyList的最佳方法....我应该使用Add和List方法创建一个BuddyList类,然后使用DataBinding创建该类的实例? 任何人都可以帮我找到最好和最正确的方法吗?
提前致谢
答案 0 :(得分:3)
您可以使用INotifyCollectionChanged
Interface创建BuddyListClass
在这里查看示例:Usage of INotifyCollectionChanged
您也可以使用ObservableCollection<T>
Class。
答案 1 :(得分:2)
如果要绑定项目集合,则应使用 ObservableCollection class
和另一个建议实现INotifyPropertyChanged接口的创建和基类, 并从中派生出要绑定到UI的每个类。
答案 2 :(得分:1)
我认为你的班级定义看起来很好。
关于列表问题,我会将我的列表公开为readonly for binding,以及所有添加,删除,编辑功能,我会将其保密。为避免手动通知您的视图以更改您的收藏集,我会使用ObservableCollection
,但会将其公开为ReadOnlyObservableCollection
。