2010-08-21 6 views
1

내가이 XAML하고있는 중이 야 :WPF gridview를 바인딩하는 방법?

<StackPanel Margin="320,0,0,0" Grid.RowSpan="2"> 
     <ListView ItemsSource="{Binding employeeCollection}"> 
      <ListView.View> 
       <GridView> 

        <GridViewColumn Header="Employee ID" DisplayMemberBinding="{Binding Path=EmployeeID}"/> 
        <GridViewColumn Header="First Name" DisplayMemberBinding="{Binding Path=FirstName}"/> 
        <GridViewColumn Header="Last Name" DisplayMemberBinding="{Binding Path=LastName}"/> 
        <GridViewColumn Header="start" DisplayMemberBinding="{Binding Path=startHR}"/> 
        <GridViewColumn Header="finish" DisplayMemberBinding="{Binding Path=finishHR}"> 

       </GridViewColumn> 
      </GridView> 
    </ListView.View> 

     </ListView> 
    </StackPanel> 

뒤에 코드 것은 :

class employeesGrid //: INotifyPropertyChanged 
{ 
    ObservableCollection<employiesData> _employeeCollection = 
    new ObservableCollection<employiesData>(); 

    public employeesGrid() 
{ 
    _employeeCollection.Add(new employiesData{ 

     EmployeeID = "World Of Warcraft", 
     FirstName = "Blizzard", 
     LastName = "Blizzard", 
     startHR = "2222", 
     finishHR = "dfs" 
    }); 


} 

    public ObservableCollection<employiesData> employeeCollection 
{ get { return _employeeCollection; } } 


} 

public class employiesData 
{ 
    public string EmployeeID { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string startHR { get; set; } 
    public string finishHR { get; set; } 
} 

}

어디에 내 주요 창 내부 내가 뭐하는 거지 :

// 생성자를 : InitializeComponent(); employeesGrid em = new employeesGrid();

1. 누군가 내가 뭘 잘못하고 있는지 안내해 주시겠습니까? 2.INProifyPropertyChanged 왜 사용해야합니까? 어떻게 사용해야합니까? 내 작품에 응시를위한

thanku 그것은 나에게 많은 :

내가 제일 implmantion 일 것입니다 무슨 내 프로그램에서이 같은 두 sturctures을 원하는 말할 수 의미 ????

+0

내가 allready 네 문제가 thanku –

답변

1

당신은 결코 당신의 listviews 'DataContext를 설정하지 않습니다.

는 윈도우 생성자에서이 시도 :

InitializeComponent(); 
employeesGrid em = new employeesGrid(); 
this.DataContext = em; 
+0

soultion을 발견의 DataContext = VM // VM이 클래스 ConnectionViewModel입니다 : 그래서 내가 어떻게 그들을 라이브 archtcture해야 무엇 함께로 만들어에서 INotifyPropertyChanged? –

+0

@ yoav.str의 경우 EmployeeCollection 속성은 ConnectionViewModel 클래스를 통해 노출되어야합니다. getter에서는 두 개의 클래스를 유지해야하는 경우 employeesGrid.employeeCollection을 반환 할 수 있습니다. –

+0

mmm 의미 connectionHandler hm 누구의 컬렉션 번호? 거기에 더 나은 archticture 무엇입니까? 또는 그것을 얻는 것처럼 간단한/프로로 어떻게 할 수 있습니까? –

1
  1. 당신은 당신의 클래스 인스턴스로 뷰의 데이터 소스를 바인딩해야합니다. 생성자에서 다음을 수행하십시오. this.DataContext = new employeesGrid();
  2. INotifyPropertyChanged는 기본 내용이 변경된 경우 UI가 내용을 새로 고치도록하려는 경우 사용해야하는 인터페이스입니다.
관련 문제