WPF:为DataBinding设计类

时间:2011-06-27 08:59:59

标签: c# wpf data-binding

我必须在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创建该类的实例? 任何人都可以帮我找到最好和最正确的方法吗?

提前致谢

3 个答案:

答案 0 :(得分:3)

您可以使用INotifyCollectionChanged Interface创建BuddyListClass
在这里查看示例:Usage of INotifyCollectionChanged 您也可以使用ObservableCollection<T> Class

答案 1 :(得分:2)

如果要绑定项目集合,则应使用 ObservableCollection class

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

答案 2 :(得分:1)

我认为你的班级定义看起来很好。

关于列表问题,我会将我的列表公开为readonly for binding,以及所有添加,删除,编辑功能,我会将其保密。为避免手动通知您的视图以更改您的收藏集,我会使用ObservableCollection,但会将其公开为ReadOnlyObservableCollection