|
Запрос на удаление строки в DataGrid
|
|||
---|---|---|---|
#18+
У DataGrid есть небольшая проблема, при удалении строки он не запрашивает подтверждения. Самый простой вариант: private void dataGrid_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Delete) { if (MessageBox.Show("delete?", "", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { dataGrid.CanUserDeleteRows = true; } else { dataGrid.CanUserDeleteRows = false; } } } Но здесь есть проблема. При нажатии клавиши Del в режиме редактирования ячейки запрос на удаление так же запрашивается? Как вариант запрашивать: ((DataGrid)sender).CurrentCell, преобразовывать к DataGridCell и читать свойство IsEditing, но CurrentCell возвращает DataGRidCellInfo и к DataGridCell оно не преобразовывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2015, 15:32 |
|
Запрос на удаление строки в DataGrid
|
|||
---|---|---|---|
#18+
UncleJo, просто добавь воды: Код: xml 1. 2. 3.
Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2015, 16:58 |
|
Запрос на удаление строки в DataGrid
|
|||
---|---|---|---|
#18+
Roman Mejtes, Спасибо в следующем проекте так и сделаю. Здесь удаление должно происходить в обработчике событий. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2015, 20:18 |
|
Запрос на удаление строки в DataGrid
|
|||
---|---|---|---|
#18+
UncleJo, все запросы и прочее должны вызываться из View. а как вам надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2015, 22:06 |
|
Запрос на удаление строки в DataGrid
|
|||
---|---|---|---|
#18+
Roman Mejtes, Обработчик нажатия клавиши Del при выборе строки - удаления строки, при редактировании ячейки редактирование TextBox или еще чего. Понятно, что не MVVMЮ, но это будет в следующем проекте. В принципе, я уже нашел решение. Сейчас выложу. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2015, 22:41 |
|
Запрос на удаление строки в DataGrid
|
|||
---|---|---|---|
#18+
UncleJo, На решение меня навел следующий код: DependencyObject dep = (DependencyObject)e.OriginalSource; while ((dep != null) && !(dep is DataGridCell)) { dep = VisualTreeHelper.GetParent(dep); } if (((DataGridCell)dep).IsEditing) { MessageBox.Show("Редактируется Ячейка"); } else { MessageBox.Show("Строка выделена"); } Так вот если ячейка не находится в режиме вставки тип dep DataGridCell, если в режиме вставки, то надо пройти по дереву и прочитать поле IsEditing. По мне, достаточно проверить тип e.OriginalSource, если DataGridCellто режима редактирования ячейки нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2015, 22:50 |
|
|
start [/forum/topic.php?fid=21&msg=38891496&tid=1440914]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 163ms |
0 / 0 |