2011-12-12 1 views
1

객체를. 이 같은 CustomObj 클래스의 모양을데이터 그리드 - 바인딩 사용자 정의 내 MVVM WPF 프로젝트에서</p> <pre><code>ObservableCollection<CustomObj> DataInfo </code></pre> <p>이 하위 목록

public class class1 : ObservableObject 
{ 
    public class1() 
    { 
     MySecondProperty = new Class2(); 
    } 

    public string MyStringValue { get; set; } 
    public Class2 MySecondProperty { get; set; } 
    public List<Class3> MyThirdProperty{ get; set; } 
} 

나는이

<DataGrid Name="dgMyDataGrid" 
       SelectedItem="{Binding SelectedItem}" 
       ItemsSource="{Binding DataInfo}"> 
</DataGrid> 

처럼 WPF 속성을 결합 지금까지 내 데이터 그리드에서 "MyStringValue"및 개체에서 값 컬렉션을 얻을 때. Google에서 결과가 나타나지 않고이 예제와 비슷한 것을 찾을 수 없습니다.

데이터를 쉽게 표시 할 수 있도록 Class2 및 목록에서 내 데이터를 어떻게 가져올 수 있습니까?

+0

Class2를 어떻게 표시 하시겠습니까? –

+0

Class2에 다른 속성이 있는데 열로 표시하고 싶다고 생각했습니다. 각 클래스 (2, 3)의 속성에 따라 "즉시"열을 생성합니다. – user1087261

답변

2

열 정의 및 열 정의 내에서 바인드해야합니다.

에 대한 당신이 다음 템플릿 데이터 그리드 열 http://blogs.msdn.com/b/vinsibal/archive/2008/08/19/wpf-datagrid-stock-and-template-columns.aspx 를 사용하여 콤보 상자 같은 것을 원한다면 다음은, 두 번째 열 강좌 3에 대한

에 MySecondProperty.SubProperty의 값을 보여줍니다 열 템플릿에 대한 정보를 가지고

<DataGrid Name="dgMyDataGrid" SelectedItem="{Binding SelectedItem}" ItemsSource="{Binding DataInfo}"> 
    <DataGrid.Columns> 
    <DataGridTextColumn Header="MyStringValue " Width="*" Binding="{Binding Path=MyStringValue }" /> 
    <DataGridTextColumn Header="MySecondProperty.SubProperty" Width="*" Binding="{Binding Path=MySecondProperty.SubProperty}" /> 
    </DataGrid.Columns> 
</DataGrid> 
+0

Anton에게 답해 주셔서 감사합니다. 저는 조금 둘러 보았습니다.하지만 당신의 대답처럼, 제가 원하는 것을 성취하기가 매우 어렵습니다. 코드 숨김에서 열을 생성해야합니다. 하지만 DataTable을 만들고 DataView를 DataGrid에 바인딩하여 문제를 해결했습니다. 그것은 최선의 방법은 아니지만 원하는 것을 인쇄합니다. 하지만 귀하의 회신에 감사 드리며 하위 속성을 사용하는 방법을 알고 있습니다. :) – user1087261