如何将 DataGrid 内部的 ItemSource 绑定到 DataContext 外部的元素,例如。 Silverlight 4 中的视图模型

发布于 2024-10-12 15:06:22 字数 730 浏览 3 评论 0原文

我有一个带有一些文本列和一个按钮的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一个人的夜不怕黑 2024-10-19 15:06:22

我最近也遇到了同样的问题。我使用的是 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文