Silverlight 中的元素数据绑定
我在 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 的名称...
任何人都可以给我一个提示,非常感谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有一个虚拟转换器并检查绑定。
我的猜测是,CellEditingTemplate 内的 DataTemplate 将接收父级的 DataContext,即 DataGrid 的 DataContext。因此,要解决这个问题,您可以做一件事。
1) 将 rsAllSkills 绑定到 DataGridTemplateColumn 的 Tag 属性。
2) 现在,将 TextBlock 的 Text 属性与 Tag 属性绑定,例如,
Have a dummy converter and check the binding.
What I guess is, the DataTemplate inside the CellEditingTemplate would receive the parent's DataContext, ie., DataGrid's DataContext. So, to work around this you can do one thing.
1) Bind the
rsAllSkills
to the Tag Property of DataGridTemplateColumn.2) Now, Bind the TextBlock's Text property with the Tag property like,