2010-10-25 12 views
0

J'ai une colonne de modèle dans un DataGrid:Élément de données-Binding dans Silverlight

<sdk:DataGridTemplateColumn.CellEditingTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Horizontal" VerticalAlignment="Center" > 

            <TextBlock Text="{Binding Name,ElementName=rsAllSkills}"/> 
           </StackPanel> 
          </DataTemplate> 
</sdk:DataGridTemplateColumn.CellEditingTemplate> 

Et dans le même fichier XAML, je

<riaControls:DomainDataSource QueryName="GetSkillsQuery" AutoLoad="True" x:Name="rsAllSkills"> 
      <riaControls:DomainDataSource.DomainContext> 
       <domain:XXXX context/> 
      </riaControls:DomainDataSource.DomainContext> 
</riaControls:DomainDataSource> 

Le DataSource a chargé tout avec succès à coup sûr, si je place ce TextBlock hors du DataGrid, cela fonctionne; mais dans le DataGrid, il ne charge même pas le nom de rsAllSkills ....

Quelqu'un pourrait-il me donner un indice, merci beaucoup.

+1

rsAllskills n'est pas un nom dans le cadre de la colonne Modèle. Les étendues n'atteignent pas un 'DataTemplate'. Vous devrez probablement inclure le DomainContext dans le DataContext du DataGrid quelque part. – Stephan

Répondre

0

Avoir un convertisseur fictif et vérifier la fixation. Ce que j'imagine, le DataTemplate à l'intérieur du CellEditingTemplate recevrait DataContext du parent, c'est-à-dire DataContext de DataGrid. Donc, pour contourner ce problème, vous pouvez faire une chose.

1) Liez le rsAllSkills à la propriété Tag de DataGridTemplateColumn.
2) Maintenant, Liez la propriété Text TextBlock avec la propriété Tag comme,

<sdk:DataGridTemplateColumn Tag="{Binding Name,ElementName=rsAllSkills}"> 
    <sdk:DataGridTemplateColumn.CellEditingTemplate> 
     <DataTemplate> 
       <StackPanel Orientation="Horizontal" VerticalAlignment="Center" >  
        <TextBlock Text="{Binding Tag}"/> 
       </StackPanel>   
     </DataTemplate> 
    </sdk:DataGridTemplateColumn.CellEditingTemplate> 
</sdk:DataGridTemplateColumn> 
+0

J'ai résolu ce problème en définissant le contrôle de la source de données Ria comme une ressource statique ... mais je vais donner à votre solution un coup de feu et marquer comme une solution si cela fonctionne. Merci! – Frank

+0

...... il n'a pas de propriété Tag ... – Frank

+0

@ user299230 Je suppose que la ressource statique est la meilleure façon. :) –