powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Перетаскивание мышкой строки DataGrid
4 сообщений из 4, страница 1 из 1
Перетаскивание мышкой строки DataGrid
    #39124253
AVP87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
В DataGrid отображён перечень объектов. Из грида их таскаю в другой грид. Но сначала нужно кликнуть строку левой кнопкой мыши, потом второй раз кликнуть и зажать - только так перетягивает.
Событие грида по которому начинается перетаскивание:
private void dataGrid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (e.OriginalSource is TextBlock)
{
var selectedItem = dgLaborSubjects.SelectedItem as LaborSubject;
DragDrop.DoDragDrop(dataGrid, new object(), DragDropEffects.Move);
}
}
Нет идей, почему перетаскивание не начинается сразу? И как избавится от этого, т.е. сразу кликать на нужную строку и перетаскивать
...
Рейтинг: 0 / 0
Перетаскивание мышкой строки DataGrid
    #39124254
AVP87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, сорсы забыл выделить
...
Рейтинг: 0 / 0
Перетаскивание мышкой строки DataGrid
    #39124289
AVP87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил проблему установкой выделенной строки, добавив в код события
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
DependencyObject dep = (DependencyObject)e.OriginalSource;
      while ((dep != null) && !(dep is DataGridCell))
      {
        dep = VisualTreeHelper.GetParent(dep);
      }
      if (dep == null) return;

      if (dep is DataGridCell)
      {
        DataGridCell cell = dep as DataGridCell;
        cell.Focus();

        while ((dep != null) && !(dep is DataGridRow))
        {
          dep = VisualTreeHelper.GetParent(dep);
        }
        DataGridRow row = dep as DataGridRow;
        dataGrid1.SelectedItem = row.DataContext;        
      }
...
Рейтинг: 0 / 0
Перетаскивание мышкой строки DataGrid
    #39124427
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на сколько я помню, это связано с тем, что там в обработчике нажатия событие помечается как обработанное.
а) тут вариантов 2, можно обрабатывать обработанные события
б) либо переопределить этот метод и вставить свой обработчик до того как его обработает DataGrid, завтра если не забуду найду на работе пример
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Перетаскивание мышкой строки DataGrid
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]