Silverlight中的元素数据绑定
我在DataGrid中有一个模板列:Silverlight中的元素数据绑定,silverlight,data-binding,element,Silverlight,Data Binding,Element,我在DataGrid中有一个模板列: <sdk:DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <StackPanel Orientation="Horizontal" VerticalAlignment="Center" >
<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我想,静态资源是最好的方式