为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绑定到该类的实例吗?最好的方法是什么?

为DataBinding设计WPF类

您可以使用INotifyCollectionChanged接口创建BuddyListClass
请在此处查看示例:INotifyCollectionChanged的用法也可以使用ObservableCollection<T>类。

如果要绑定项的集合,则应使用ObservableCollection类

以及另一个建议创建并实现INotifyPropertyChanged接口的基类,并从中派生出要绑定到UI的每个类。

我认为您的类定义看起来很好。

关于列表问题,我会将我的列表公开为只读以进行绑定,并且所有的添加、删除和编辑功能我都会将其保密。为了避免手动通知视图对集合的更改,我会使用ObservableCollection,但将其作为ReadOnlyObservableCollection公开给公众。