2010-05-27 119 views
1

我一直在玩WPF GridView控件(DesktopUI而不是Silverlight),我需要能夠選擇特定的行並且只有該行的數據返回在新控件(如列表框)中查看。如何從telerik WPF GridView控件中選擇一行數據

此外,一旦選擇了一行中的數據,則需要禁用選擇或向我的列表框中添加其他數據的功能。這裏的用例是用戶只能選擇一行/記錄來導出或發佈。

在翻閱一些telerik示例時,我看到了一些類似的例子,但沒有完全支持這個用例。

有沒有人有過這些控件expereince,並知道這是否可以在WPF gridView內完成。我沒有太多的運氣與他們的文檔,我試圖使用一些像GridViewSelectColumn屬性的繼承功能(它生成一個列中的複選框,但我沒有任何運氣調用命令時,複選框被選中/檢查)。相反覆選框的我應該使用一個按鈕,並補充說,作爲一個單獨的列,用戶可以點擊,如:

如果任何人都可以提供如何調用一個的選擇的代碼示例一行數據以及如何禁用選擇一行後選擇額外的行我將不勝感激。對於禁用,我假設一旦選擇了一個項目,CanUserSelect屬性需要設置爲false,但我還沒有成功地使用GridViewSelectColumn調用任何東西。

任何樣品或參考點將不勝感激。

謝謝

+0

因此,在使用控件進行更多操作時,我在窗口中添加了一個按鈕,該按鈕現在可以捕獲所有行的所有適當記錄。 要做到這一點我用:this.radGridView1.SelectedItem 我現在的問題是爲了顯示這些記錄在一個新的控制,我需要推它到一個新的集合,然後將該集合綁定到控件或我可以直接穿過它們。我可能是錯的,但它似乎過分創造了一個新的集合,但我仍然是新的。 提前致謝 – rlcrews 2010-05-27 19:29:16

回答

0

我意識到這是一個老帖子。但我想在這個問題上解決這個問題,它會幫助其他人。對於這個項目,我希望能夠在網格視圖內爲特定行選擇記錄。 Telerik GridView返回了5列,但集合(從WCF服務返回)實際上最多包含30列。

我不打算解決數據綁定這裏只有如何設置選擇。此外,這種技能並不遵循一種模式(比如MVVM),因此爲了快速地將代碼放在xaml代碼隱藏中。

首先,我需要註冊CollectionChangedEvent處理程序。這樣做是每次我選擇一個網格視圖的行時,它會根據選定的行生成所有項目的內存中集合。

this.myGridView.Loaded += (o, e) => 
     { 
      this.myGridView.SelectedItems.CollectionChanged += new NotifyCollectionChangedEventHandler(SelectedItem_CollectionChanged); 
     }; 

而對於SelectedItem_Collection更改事件

 void Item_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) 
    { 
     if (e.Action == NotifyCollectionChangedAction.Add) 
     { 
      var index = e.NewItems[0] as myWCFService.Index; 
      currentItem = index.Item; 
     } 
    } 

基本上這裏發生了什麼時,得到的記錄選擇從(在電網未顯示,包括所有項目)所選擇的行中的項目是這是通過seting index =來自我的webservice的e.NewItems [0],然後將它添加到內存中的新集合(currentItem)。

注:CURRENTITEM被宣佈在主類爲:

public myWCFService.Item currentItem; 

一旦這樣做,我不得不從選定行(存儲在CURRENTITEM集合中)其他集合/控件傳遞數據的能力