如何在 Silverlight Telerik Radgrid 中公开超链接按钮的命令
为了向您提供背景知识,我正在使用 Silverlight + MVVM 和 PRISM。
我有一些主数据要在网格中显示,并将第一列作为详细数据的超链接。 我试图公开一些超链接按钮的命令,但它似乎工作得不好。
这是我的 XAML ->
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Detail ID">
<telerik:GridViewColumn.CellTemplate>
<DataTemplate>
<HyperlinkButton Content="{Binding DetailID}"
Command="{Binding SelectGridItemCommand}"
CommandParameters={Binding}
/>
</DataTemplate>
</telerik:GridViewColumn.CellTemplate>
</telerik:GridViewDataColumn>
... [other columns]
</<telerik:RadGridView.Columns>
基本上,我想对列名称上显示的文本进行一些处理并导航到详细信息页面。
有人可以帮我吗..
To give you background, i am using Silverlight + MVVM and PRISM.
I have some Master data to show in grid and have the first column as hyperlink to the detail data.
I am trying to expose some command for a Hyperlink button, but it doesnt seem to work fine.
Here's my XAML ->
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Detail ID">
<telerik:GridViewColumn.CellTemplate>
<DataTemplate>
<HyperlinkButton Content="{Binding DetailID}"
Command="{Binding SelectGridItemCommand}"
CommandParameters={Binding}
/>
</DataTemplate>
</telerik:GridViewColumn.CellTemplate>
</telerik:GridViewDataColumn>
... [other columns]
</<telerik:RadGridView.Columns>
Basically, I want to do some processing on the text that is present on the Column name and navigate to the detail page.
Can someone help me here..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我发现我做错了什么。我已将 viewModel 中的 Model 对象绑定到 Grid,当我在 ViewModel 中编写绑定命令时,我没有指定它需要将数据上下文更改为我的 viewmodel。
无论如何,我最终编写了一个委托,并在 Model 类中公开了一个事件,并在 ViewModel 中订阅了该事件,在 ViewModel 中我使用自定义的 EventHandlerArgs 对其进行了处理。
I found what I was doing wrong. I had bound an Model object in the viewModel to the Grid and when I wrote the binding command in ViewModel, i dint specify that it needs to change the data context to my viewmodel.
Anyways I eventually wrote an delegate and exposed an event in the Model class and subscribed to that event in the ViewModel where I handled it with my custom EventHandlerArgs.
使用 Caliburn Micro,绑定是无缝的,如果您命名控件,假设为“SelectDetail”,则相邻 ViewModel 的方法也应命名为 SelectDetail。更重要的是,如果您创建一个名为 CanSelectDetail 的布尔属性,将会有一个“自动”绑定到 IsEnabled Hyperlikn 的属性
With Caliburn Micro the binding is seamless, if you name control, let's say 'SelectDetail', the adjacent ViewModel's method should be named SelectDetail as well. Evenmore, if you create a boolean property named as CanSelectDetail there will be an 'automagic' binding to IsEnabled Hyperlikn's property