2012-04-23 22 views
0

在我的Silverlight應用程序中我有一個網頁一個radgridview, 這radgridview有另一個控制,RowDetailsTemplate。Radgridview只選擇一個明細行

在這種RowDetailsTemplate是與另一控件RowDetailsTemplate另一個radgridview。 這RowDetailsTemplate也有radgridview。

所有GridView的有幾個綁定到我的視圖模型(我用MVVM)

層次結構是這樣的:

- RadGridView 
     - RadGridView (in fact a seperate control with a gridview, setup as rowdetailstemplate on the parent gridview) 
      -RadGridView (in fact a seperate control with a gridview, setup as rowdetailstemplate on the parent gridview) 

在我的設置中,你可以選擇,每格一個行/細節網格。

這意味着你可以在視覺上具有1至在整個網格選擇的N行。 這看起來很混亂,不太友好。

我的問題:

什麼是改變這種做法,只有一個行可以選擇,而不是1到N的最佳方式?

回答

1

我不知道這將是希望的方式。但你可以做這樣的事情...

Private Sub AllGrids_ItemClicked(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) _ 
    Handles grd1.ItemCommand, grd2.ItemCommand, grd3.ItemCommand 
    dim gridSelected as New RadGrid 
    gridSelected = sender 
    If e.CommandName = "RowClick" Then 
     if gridSelected.ID = grd1.ID then 
      For i As Integer = 0 To grdMenu.Items.Count - 1 
      If grd2.Items(i).Selected Then 
       grd2.Items(i).Selected = False 
      End If 
      Next 
      For i As Integer = 0 To grdMenu.Items.Count - 1 
      If grd3.Items(i).Selected Then 
       grd3.Items(i).Selected = False 
      End If 
      Next 
     end if 
    End If 
    '' Do this again for each of the other grids. 
End Sub 

基本上你將通過電網循環,並沒有引起該事件取消一切。

+0

該解決方案似乎是可行的,我希望找到更多的東西像MVVM,但一定會做的。 – Thomas 2012-05-03 06:56:10