如何将多行从一个网格视图移动到另一个 | WPF

Posted

技术标签:

【中文标题】如何将多行从一个网格视图移动到另一个 | WPF【英文标题】:how to move multiple rows from one Grid View to another | WPF 【发布时间】:2018-06-11 12:21:50 【问题描述】:

我有一个GridView,用户可以在其中选择他想要复制的行(将其移动到另一个网格视图)。到目前为止,用户必须一一选择每一行。我想通过让用户一次选择多行并复制多行来改进用户体验。 有什么方法可以让我轻松做到这一点?

图像显示了我想要做什么,将选定的行移动到右侧网格视图 我正在使用 C# WPF,数据存储在链接到网格视图的 Datatable 中 我用来移动一行的代码:

DataRowView viewRow = (DataRowView)DBElementGrid.SelectedItem;
DataRow row = selectTable.NewRow();                                                                                                 

for (int i = 0; i < DBElementGrid.Columns.Count; i++)                                                                              

     row[i] = viewRow[i];                                                                                                            


selectTable.Rows.Add(row);        
for (int i = 0; i < DBElementGrid.Columns.Count; i++)                                                                                                   

     selectTable.Columns[i].ColumnName = DBElementGrid.Columns[i].Header.ToString();                                                 

selectGrid.DataContext = selectTable.DefaultView;    

【问题讨论】:

使用在循环中为每个选定行复制一行的代码? 你在使用 MVVM 吗?显示一些代码和您尝试过的内容。 @blins 我不是在构建 Web 应用程序,它是一个独立的 c# 程序 右边DataGrid的ItemsSource是什么? @mm8 一个数据表 【参考方案1】:

如果右 DataGrid (targetDataGrid) 绑定到包含与您从中选择的原始列数相同的列数的 DataView,这应该可以工作:

DataView dv = targetDataGrid.ItemsSource as DataView;
if (dv != null)

    foreach (var selectedItem in selectGrid.SelectedItems.OfType<DataRowView>())
    
        dv.Table.Rows.Add(selectedItem.Row.ItemArray);
    

【讨论】:

【参考方案2】:

如果您使用 DataGrid,您可以直接访问 dataGrid 的选定项。因此 DataGrid.SelectedItems 将为您提供选定的项目,您可以将其设置为正确 DataGrid 的项目源。

【讨论】:

以上是关于如何将多行从一个网格视图移动到另一个 | WPF的主要内容,如果未能解决你的问题,请参考以下文章

WPF MVVM 通过事件将 UserControl 从一个 ObservableCollection 移动到另一个

我需要导航到另一个视图,其中包含带有 MVVM 的 WPF 中父对象的子对象

将数据从网格视图复制到另一个(有没有更好的方法)

如何在 WPF 中从一个窗口移动到另一个窗口?

Xcode:如何将对象从一个 viewControllers 视图移动到另一个 viewControllers 视图?

将数据从一个视图移动到另一个视图