2017-07-21 5 views
0

J'ai un RadGridView avec un GridViewToggleRowDetailsColumn, qui peut développer un élément sélectionné et afficher plus de détails. Je veux utiliser CaliburnMicro pour afficher le DetailsView, donc j'ajoute une propriété du DetailsViewModel à mon "MainViewModel" et ajoute un ContentControl avec une liaison à lui.CaliburnMicro Binding Voir à l'intérieur RadGridView.RowDetailsTemplate

<telerik:RadGridView ItemsSource="{Binding Products.View}" 
      SelectedItem="{Binding SelectedProduct}" ... > 

      <telerik:RadGridView.RowDetailsTemplate> 
       <DataTemplate> 
        <ContentControl cal:View.Model="{Binding ProductDetailsViewModel}" /> 
       </DataTemplate> 
      </telerik:RadGridView.RowDetailsTemplate> 


      <telerik:RadGridView.Columns> 
       <telerik:GridViewToggleRowDetailsColumn /> 

       ...Columndefinitions... 

      <telerik:RadGridView.Columns>     
     </telerik:RadGridView> 

Le problème est que les détails ne sont pas affichés. De here J'ai lu que la liaison échoue en raison de ItemsSource. J'ai donc essayé

<ContentControl cal:View.Model="{Binding ProductDetailsViewModel, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}}" /> 

mais cela ne fonctionne toujours pas.

Répondre

1

Si la ProductDetailsViewModel propriété est définie dans la même catégorie que la propriété Products que le RadGridView est lié, essayez ceci:

<ContentControl cal:View.Model="{Binding DataContext.ProductDetailsViewModel, RelativeSource={RelativeSource FindAncestor, AncestorType=telerik:RadGridView}}" /> 
+1

Cela a fonctionné, merci – user3755567