2013-01-21 1 views
0

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:

  1. 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.

Répondre

0

Il est possible que je n'ai pas réussi à faire fonctionner la liaison car je n'utilise pas de modèle MVVM ou PRISM. Mais j'ai réussi à l'utiliser en utilisant l'événement LoadingRow de mon DataGrid. Cela m'a permis de faire référence au contrôle LayoutCanvas à partir de mon contrôle utilisateur personnalisé.

Questions connexes