为DataBinding设计WPF类
本文关键字:WPF 设计 DataBinding | 更新日期: 2023-09-27 18:00:32
我必须在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));
}
}
我不知道处理好友列表的最佳方式是什么。我应该用Add and List方法创建一个BuddyList类,然后将DataBinding绑定到该类的实例吗?最好的方法是什么?
您可以使用INotifyCollectionChanged
接口创建BuddyListClass
请在此处查看示例:INotifyCollectionChanged的用法也可以使用ObservableCollection<T>
类。
如果要绑定项的集合,则应使用ObservableCollection类
以及另一个建议创建并实现INotifyPropertyChanged接口的基类,并从中派生出要绑定到UI的每个类。
我认为您的类定义看起来很好。
关于列表问题,我会将我的列表公开为只读以进行绑定,并且所有的添加、删除和编辑功能我都会将其保密。为了避免手动通知视图对集合的更改,我会使用ObservableCollection
,但将其作为ReadOnlyObservableCollection
公开给公众。