WPF在排序的数据网格上获取选定的单元格 [英] WPF get selected cells on sorted datagrid

查看:74
本文介绍了WPF在排序的数据网格上获取选定的单元格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好

如何获取选定的行-然后将每个(可见)单元格分别放在已排序的数据网格上?

类似datagrid.SelectedCells [i] [j],但要考虑排序.

谢谢

解决方案

我认为您可能想尝试DataGrid.CurrentItem属性. CurrentItem属性获取绑定到包含当前单元格的行的数据项.

http://msdn.microsoft.com/zh-CN/library/system.windows.controls.datagrid.currentitem %28VS.95%29.aspx

这里是使用它的示例.

public 部分 Window1 :窗口

私有 DataTable dt = DataTable ();

公共 Window1()

"Column1" );

"Column2"; );

用于( int i = 0; i< 10; i ++)

项目" + i.ToString());

EventHandler < EventArgs >(dataGrid1_CurrentCellChanged);

无效 dataGrid1_CurrentCellChanged(对象发​​送者, EventArgs e)

DataRowView drv =( DataRowView )dataGrid1.CurrentItem;

字符串 cellOfColumn1 = drv [0] .ToString();

字符串 cellOfColumn2 = drv [1] .ToString();

在此示例中,我将DataGrid1与DataTable绑定.当我更改选择时,将触发CurrentCellChanged,并通过CurrentItem属性获得选择了哪个项目.它是一个 在此示例中为DataRowView实例.因此,我可以将其转换为DataRowView并获取每个单元格的值.希望能帮助到你.

此致,

张倩倩

在论坛中

如果您对我们的支持有任何反馈,请联系 msdnmg@microsoft.com


hello,

how can i get the selected rows - and then each (visible) cell separately on a sorted datagrid?

something like datagrid.SelectedCells[i][j], but with sorting taken onto account.

Thanks

解决方案

Hi immuner,

 

I think you might want to try DataGrid.CurrentItem property. The CurrentItem property gets the data item bound to the row that contains the current cell.

http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.currentitem%28VS.95%29.aspx

 

Here is a sample to use it.

public partial class Window1 : Window

    {

        private DataTable dt = new DataTable();

 

        public Window1()

        {

            InitializeComponent();

            dt.Columns.Add("Column1");

            dt.Columns.Add("Column2");

            for (int i = 0; i < 10; i++)

            {

                dt.Rows.Add(i, "Item" + i.ToString());

            }

            dataGrid1.ItemsSource = dt.DefaultView;

            dataGrid1.CurrentCellChanged += new EventHandler<EventArgs>(dataGrid1_CurrentCellChanged);

        }

 

        void dataGrid1_CurrentCellChanged(object sender, EventArgs e)

        {

            DataRowView drv = (DataRowView)dataGrid1.CurrentItem;

            string cellOfColumn1 = drv[0].ToString();

            string cellOfColumn2 = drv[1].ToString();

        }

    }

In this sample, I bind the DataGrid1 with a DataTable. When I change the selection, CurrentCellChanged fires and I get which item is selected via CurrentItem property. It is a DataRowView instance in this example. So I can convert it to DataRowView and get each cell’s value. Hope it helps.

 

Sincerely,

Kira Qian

MSDN Subscriber Support in Forum

If you have any feedback on our support, please contact msdnmg@microsoft.com


这篇关于WPF在排序的数据网格上获取选定的单元格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆