2

为了给你背景,我正在使用 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>

基本上,我想对列名称上的文本进行一些处理并导航到详细信息页面。

有人可以在这里帮助我吗..

4

2 回答 2

2

我发现我做错了什么。我已将 viewModel 中的 Model 对象绑定到 Grid,当我在 ViewModel 中编写绑定命令时,我明确指定它需要将数据上下文更改为我的 viewmodel。

无论如何,我最终编写了一个委托并在 Model 类中公开了一个事件,并在 ViewModel 中订阅了该事件,并在其中使用我的自定义 EventHandlerArgs 处理它。

于 2011-06-29T10:44:21.810 回答
-1

使用 Caliburn Micro 的绑定是无缝的,如果你命名控件,比如说“SelectDetail”,相邻的 ViewModel 的方法也应该命名为 SelectDetail。此外,如果您创建一个名为 CanSelectDetail 的布尔属性,则会有一个“自动”绑定到 IsEnabled Hyperlikn 的属性

于 2011-06-26T17:35:20.473 回答