2010-05-25 2 views
1

이것이 바인딩 된 것처럼 보이지만 Details Grid의 행은 비어 있습니다. 뭔가 빠졌거나 없습니까?DataGrid의 내부에 DataGrid를 추가하십시오. RowDetailsTemplate

나는 또한 시도했다 {바인딩 SubCustomers}

SubCustomers는 부모 개체의 목록입니다. 나는 그런 FIRSTNAME 등 만이 아닌 하위 컬렉션과 같은 하나의 필드에이 방법을 결합 할 수 있어요

..

 <DataGrid.RowDetailsTemplate> 
      <DataTemplate> 
       <DataGrid AutoGenerateColumns="True" ItemsSource="{Binding Source=SubCustomers}" /> 
      </DataTemplate> 
     </DataGrid.RowDetailsTemplate> 

답변

1

문제는 당신이의 DataContext에 속성에 바인딩하려고하는 것입니다 부모, 특정 행에 없습니다. 따라서 RowDetailsDataContext이 행 항목이고 부모 속성을 가져 오려면 RelativeSource 바인딩을 사용해야합니다. 부모의 DataContext에 바인딩하는 경우 실제로 걱정하는 속성에 "도트 - 다운"할 수 있습니다.

<DataGrid.RowDetailsTemplate> 
     <DataTemplate> 
      <DataGrid AutoGenerateColumns="True" 
         ItemsSource="{Binding DataContext.SubCustomers, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" /> 
     </DataTemplate> 
    </DataGrid.RowDetailsTemplate> 
+0

감사합니다. 여전히 작동하지 않습니다. 이제는 빈 행이있는 세부 정보에서 눈금을 얻는 대신 공백이 생깁니다. 도 부모의 DataContext가 특정 행이 아니면 왜 제대로 작동합니까?

+0

자세한 내용은 행입니다 ... 귀하의 SubCustomers가 부모 목록에 있다고 생각합니다. (별로 의미가 없지만, 귀하의 질문). 이 경우 목록에 직접 바인드 할 수 있어야합니다. 목록은 항상 채워 집니까? 그렇지 않다면 ObservableCollection입니까? –

관련 문제