Привязка данных элемента в Silverlight - PullRequest
0 голосов
/ 25 октября 2010

У меня есть шаблон столбца в DataGrid:

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

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

И в том же файле xaml у меня есть

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

DataSource наверняка загрузил все успешно, если я помещу этот TextBlock вне DataGrid, он будет работать; но внутри DataGrid он не загружает даже имя rsAllSkills ....

Может ли кто-нибудь дать мне подсказку, большое спасибо.

1 Ответ

0 голосов
/ 25 октября 2010

Имейте фиктивный конвертер и проверьте привязку.

Что я предполагаю, так это то, что DataTemplate внутри CellEditingTemplate получит DataContext родителя, т. Е. DataContext DataGrid. Таким образом, чтобы обойти это, вы можете сделать одну вещь.

1) Привязать rsAllSkills к свойству тега DataGridTemplateColumn.
2) Теперь, свяжите свойство Text TextBlock со свойством Tag, например,

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