사용자 클래스의 ObservableCollection에 바인딩 된 DataGrid가 있습니다. 컬렉션은 ViewModel의 속성이며, 그리드는 컬렉션 변경을 포함하여 잘 작동합니다.WPF에서 DataGrid.RowDetailsTemplate에서 어떻게 바인딩합니까?
나는 그렇게처럼 StackPannel에 두 개의 추가 컬렉션을 표시 할 RowDetailsTemplate를 사용하려면 :
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Name="GrcidSP" Orientation="Horizontal">
<DataGrid Name="ClusterIndexGrid" AutoGenerateColumns="True"
ItemsSource="{Binding ClusterIndexColumns}"
CanUserAddRows="False" CanUserResizeRows="False"
Width="Auto"/>
<DataGrid Name="IndexGrid" AutoGenerateColumns="True"
ItemsSource="{Binding IndexColumns}"
CanUserAddRows="False" CanUserResizeRows="False"
Width="Auto"/>
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
ClusterIndexColumns 및 IndexColumns, 내부 격자의 결합 소스, 또한 뷰 모델의 모음입니다.
문제는, 내가 rowdetails를 표시 할 때 데이터 그리드가 비어있는 것입니다. 즉, 전혀로드되지 않았거나 열이나 행이 없습니다. 무슨 일이 일어나고 있는지 이해하는 입찰에서
, 내가 레이블 내부 DataGrids를 대체 : <DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Name="GridSP" Orientation="Horizontal">
<Label Content="{Binding}" Width="Auto" Background="AliceBlue"/>
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
와 바인딩 소스 지정하지 않았 -
이 라벨은 이제 이름을 표시 {바인딩을} 외부 그리드의 소스 인 컬렉션에있는 사용자 정의 클래스의 이름입니다.
그래서 어떻게 든 내부 격자의 데이터 컨텍스트로 ViewModel로 돌아갈 필요가 있습니다.
하지만 어떻게 말해?