Je n'utilise pas les modèles basés sur MVVM ou PRISM. J'essaie de lier à l'intérieur d'un DataTemplate DataGrid à un contrôle qui vit au même niveau que mon DataGrid. Quand je fais cela, je suis retourné nul.Comment se lier à une référence de contrôle à partir d'un DataTemplate dans DataGrid
2 Questions:
Qu'est-ce que LayoutRoot? Quand je me réfère à lui, qui dans ce cas est une grille, je suis retourné un objet. Si je change LayoutRoot à une toile dans mon XAML, je suis retourné null. Comment puis-je lier à un canevas dans mon code XAML dans le DataTemplate d'une colonne DataGrid?
Je le XAML suivant: (Entretenu à cause de longueur)
<Grid x:Name="LayoutRoot" Background="#F7F7F7">
<Border>
<Canvas x:Name="LayoutCanvas">
<!-- A lot of Xaml -->
</Canvas>
</Border>
</Grid>
Dans ma toile, je l'DataGrid suivante:
<sdk:DataGrid x:Name="dgOrderContents" AutoGenerateColumns="False">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Header="Thumb">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ucp:PhotoComponentForDataGrid Source="{Binding PhotoUrl}" PopupTarget="{Binding ElementName='LayoutCanvas' }" Width="60" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn
</sdk:DataGrid.Columns>
</sdk:DataGrid>
Mon problème est lorsque je tente de bind en utilisant 'LayoutCanvas', la valeur est null ce qui provoque une erreur. Si je lie à 'LayoutRoot', cela fonctionne, sauf que j'ai besoin du Canevas car un contrôle FloatableWindow qui réside dans mon UserControl repose sur un Canvas.
Merci d'avance pour toute aide ou suggestion.