2010-05-27 33 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集合中)其他集合/控件传递数据的能力

相关问题