如何将 DataGrid 内部的 ItemSource 绑定到 DataContext 外部的元素,例如。 Silverlight 4 中的视图模型
我有一个带有一些文本列和一个按钮的 DataGrid。我想将按钮绑定到 ViewModel 上的命令。由于列位于 ItemSource 的上下文内,因此我想将按钮的 DataContext 更改为 DataGrid 之外的内容(更改为视图模型,以访问命令),否则 Silverlight 无法找到该命令的绑定表达式在 ItemSource 上下文中。
这就是我正在做的事情,但我没有成功。我不确定我在哪里犯了错误,
<DataGrid >
...
<Button>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding Path=DataContext.CommandToCall, ElementName=DataGridName}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
...
</DataGrid>
我在执行此操作时没有收到任何绑定错误,但我无法在 ViewModel 中调用该命令。请注意,它适用于 silverlight 而不是 WPF。 谢谢
I have a DataGrid with some text columns and a button. I want to bind button to a command on the ViewModel. Since, Columns are inside the context of the ItemSource, i want to change the DataContext for the button to something outside the DataGrid(to a view model, to access the Command) or else Silverlight is not able to find the binding expression for that command on the ItemSource context.
Here is what i am doing but i am unsuccessful in doing so. I am not sure where i am making a mistake
<DataGrid >
...
<Button>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding Path=DataContext.CommandToCall, ElementName=DataGridName}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
...
</DataGrid>
I do not get any Binding error on doing this but i cannot invoke the command inside my ViewModel. Please note, it is for silverlight and not WPF.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我最近也遇到了同样的问题。我使用的是 Telerik RadGridView,我在他们的支持论坛上找到了解决方法。也许你可以做类似的事情。
这是问题< /a>,这是 解决方法。
I had this same problem recently. I was using a Telerik RadGridView, and I found a workaround on their support forum. Maybe you can do something similar.
Here's the question, and here's the workaround.