2009-06-12 10 views
3

Ich möchte ein DataGrid innerhalb der RowDetailsTempalte eines anderen Datagrid verwenden. Für dieses innere Datagrid sollten seine Spalten an eine Eigenschaft des aktuellen Objekts im äußeren Datagrid gebunden sein. Wenn beispielsweise das äußere Datagrid alle Kontakte nach Vornamen und nach Nachnamen anzeigt, sollte ich in der Lage sein, ein anderes Datagrid anzuzeigen, das alle mit diesem Kontakt verknüpften Telefonnummern enthält. Am meisten interessiert mich, wie sich die Daten des inneren Datagrids an die Daten des äußeren Datagrids binden. Hier einige XAML, die ich bisher mit zu beginnen haben:Verwenden von Datagrid in RowDetailsTemplate eines anderen Datagrid

<data:DataGrid MinHeight="700" x:Name="contacts"> 
       <data:DataGrid.Columns>      
        <data:DataGridTextColumn Header="First Name" Binding="{Binding FirstName}"></data:DataGridTextColumn> 
        <data:DataGridTextColumn Header="Last Name" Binding="{Binding LastName}"></data:DataGridTextColumn>       
       </data:DataGrid.Columns> 
       <data:DataGrid.RowDetailsTemplate> 
        <DataTemplate> 
         <StackPanel Background="Black"> 
          <StackPanel Background="White" Margin="16"> 
           <data:DataGrid DataContext="Contact.Phones"> 

           </data:DataGrid> 
          </StackPanel> 
         </StackPanel> 
        </DataTemplate> 
       </data:DataGrid.RowDetailsTemplate> 
      </data:DataGrid> 

Antwort

-3

die RowDetailsTemplate Verwenden Sie stattdessen: DataGrid.RowDetailsTemplate Property.

Sie können an das Ereignis DetailsVisibilityChanged binden, und das wird Ihnen die DataContext der Zeile übergeben, die geklickt wurde. Von dort können Sie die Detaildaten abrufen und die RowDetailsTemplate entsprechend aktualisieren.

+0

Ich kann keinen Hinweis auf dieses Ereignis finden. Gibt es eine bessere Verbindung, die diese Eigenschaft im Detail bezieht? Auch verwende ich bereits die RowDetailsTemplate. –