Silverlight中的元素数据绑定

Silverlight中的元素数据绑定,silverlight,data-binding,element,Silverlight,Data Binding,Element,我在DataGrid中有一个模板列: <sdk:DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <StackPanel Orientation="Horizontal" VerticalAlignment="Center" >

我在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>

数据源确实成功地加载了所有内容,如果我将TextBlock放在DataGrid之外,它就可以工作了;但在DataGrid中,它甚至不加载rsAllSkills的名称


谁能给我一个提示,非常感谢。

有一个虚拟转换器并检查绑定

我猜CellEditingTemplate中的DataTemplate将接收父级的DataContext,即DataGrid的DataContext。所以,要解决这个问题,你可以做一件事

1) 将
rsAllSkills
绑定到DataGridTemplateColumn的Tag属性
2) 现在,将TextBlock的Text属性与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>


rsAllskills不是模板列范围内的名称。作用域不能到达
数据模板
之外。您可能需要在DataGrid的DataContext中包含DomainContext。。。但是我会给你的解决方案一个机会,如果它有效的话,我会把它标记为解决方案。谢谢@user299230我想,静态资源是最好的方式