【问题标题】:Trouble Binding to WPF Datagrid无法绑定到 WPF 数据网格
【发布时间】:2014-09-11 10:20:28
【问题描述】:

我有一个希望绑定到以下数据模型的 WPF 数据网格,但我似乎无法正确设置。最初,我绑定的 List 是空的,我想让用户能够输入信息。所以我这样定义数据网格:

<DataGrid Name="dgUsers" AutoGenerateColumns="True" CanUserAddRows="True" CanUserDeleteRows="True"/>

我的模型类如下:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime Birthday { get; set; }

    public string Details
    {
        get
        {
            return String.Format("{0} was born on {1} and this is a long description of the person.", this.Name, this.Birthday.ToLongDateString());
        }
    }
}

public class Group : INotifyPropertyChanged
{
    private string _id = Guid.NewGuid().ToString();

    private string _name;
    public string Name
    {
        get { return this._name; }
        set
        {
            if (value != this._name)
            {
                this.Name = value;
                OnPropertyChanged("Name");
            }
        }
    }

    public string ID { get { return this._id; } }
    public List<User> GroupUsers
    {
        get;
        set;
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

我想要做的是绑定到 Group 类,但只绑定到 GroupUsers 值。我怎么做?我是否为双向绑定正确定义了我的用户属性 GroupUsers?

【问题讨论】:

    标签: c# wpf datagrid


    【解决方案1】:

    您需要让User 类实现INotifyPropertyChangedGroupUsers 属性应该是ObservableCollection&lt;T&gt;

    【讨论】:

    • 好的,谢谢。那么我是否遵循 INotifyPropertyChange 模式,例如 Name 属性?
    • 是的。对于 User 类中的每个公共属性。
    • 感谢您,现在看来绑定正确!感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-09-28
    • 2010-11-15
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 2011-05-28
    相关资源
    最近更新 更多