как переместить несколько строк из одного вида сетки в другой |WPF - PullRequest
0 голосов
/ 11 июня 2018

У меня есть GridView, в котором пользователь может выбрать строки, которые он хочет скопировать (переместить его в другое представление сетки).до сих пор пользователь должен был выбирать каждую строку по одному.Я хочу улучшить UX, позволяя пользователю выбирать несколько строк одновременно и копировать несколько строк.
Есть ли способ, которым я могу сделать это простым способом?

enter image description here

На рисунке показано, что я хочу сделать, переместить выбранные строки в правый вид сетки
Я использую 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;    

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Это должно работать при условии, что право 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);
    }
}
0 голосов
/ 11 июня 2018

Вы можете получить прямой доступ к выбранным элементам dataGrid, если вы используете DataGrid.Поэтому DataGrid.SelectedItems предоставит вам выбранные элементы, которые вы можете установить в качестве источника элементов для правильной DataGrid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...