2014-09-11 2 views
0

다음 데이터 모델에 바인딩하려는 WPF DataGrid가 있지만 올바르게 가져올 수 없습니다. 처음에는 바인딩 할 목록이 비어 있고 사용자에게 정보를 입력 할 수있는 권한을 부여하려고합니다. 그래서 같은 데이터 그리드를 정의 다음과 같이WPF Datagrid에 바인딩 문제가 발생했습니다.

<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)); 
     } 
    } 
} 

하지만 단지 GroupUsers 값으로, 그룹 클래스에 바인드합니다. 어떻게해야합니까? TwoWay 바인딩에 대해 내 사용자 속성 그룹 사용자가 올바르게 정의되어 있습니까?

답변

3

클래스 구현 및 GroupUsers 속성은 ObservableCollection<T>이어야합니다.

+0

감사합니다. 그래서 나는 Name 속성과 같이 INotifyPropertyChange 패턴을 따른다. –

+0

예. User 클래스의 각 public 속성에 대해. – toadflakz

+0

고마워, 지금 제대로 바인딩 된 것 같습니다! 도와 줘서 고마워. –