|
DataGrid с кнопкой в строке
|
|||
---|---|---|---|
#18+
Привет всем, нашел интересный пример Datagrid c кнопками в строках( http://losev-al.blogspot.ru/2012/09/blog-post_26.html ) и хотел реализовать такой же, только с использованием MVVM паттерна. Создал ViewModel Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53.
и переписал xaml- разметку Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59.
Данные отображаются, но событие нажатия кнопки не срабатывает. Ставил точку останова на Код: vbnet 1.
- до нее не доходит. Пробовал менять в DependencyProperty.Register "MainWindow" на "ViewModel" - не помогло плюс стало писать ошибку о ненахождении свойства "DeletedCommand". Гуглом гуглил- не помогло. Подскажите кто в курсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2016, 20:55 |
|
DataGrid с кнопкой в строке
|
|||
---|---|---|---|
#18+
DataContext объявлен на уровне грида, то есть там ваша вьюмодель, не выше. А привязку команды вы пытаетесь выполнить на уровень Window - там нет никакой вьюмодели. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2016, 22:43 |
|
DataGrid с кнопкой в строке
|
|||
---|---|---|---|
#18+
Shocker.Pro, пробовал следующие варианты: DataContext на уровне Datagrid 1) Код: xml 1.
кнопки стали неактивны 2) Код: xml 1.
кнопка стала активна, но команда не работает 3) убрал DataContext из DataGrid и назначил его на уровне Window Код: xml 1. 2. 3. 4.
привязка команды: Код: xml 1.
4) Код: xml 1.
Пробовал Код: vbnet 1.
заменить на Код: vbnet 1.
Ни в каком случае команда не срабатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2016, 12:30 |
|
DataGrid с кнопкой в строке
|
|||
---|---|---|---|
#18+
Наконец нашел время, чтобы взглянуть подробнее.. Ошибка в том, что вы пытаетесь получить свойство не из VM, а из некоторого объекта визуального дерева. Вот так, например, будет работать: Код: xml 1.
Правда, это довольно негибкий подход, жесткая привязка к месту привязки DataContext, жесткое ограничение структуры формы. Пару месяцев тут уже было обсуждение именно такого случая, Роман давал рецепт, попробуйте найти. ЗЫ: Код вы привели не весь, пришлось переводить частично с C#, спотыкаясь на незнакомом синтаксисе. Приводите уж полностью... или бросайте это дела, переходите на шарп )) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2016, 23:01 |
|
DataGrid с кнопкой в строке
|
|||
---|---|---|---|
#18+
вот оно, кстати Binding на уровень выше {Binding ../Item} - как? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2016, 23:03 |
|
DataGrid с кнопкой в строке
|
|||
---|---|---|---|
#18+
используйте RoutedCommand, они дают большую гибкость. Есть 1 минус, для MVVM нужно делать свой обработчик маршрутизируемых команд, который можно будет связывать с моделью представления, я сегодня дома, так что скинуть не смогу его. Суть простая, в любом месте (ячейки грида, строка списка) вы добавляете элемент управления с командой (обычно это кнопка или любой другой элемент наследуемый ICommandSource) и задаете свойству Command ранее определенную в стат. классе марш. команду. Команда это работает на RoutedEvents типа Bubble, всплывает к корню дерева, и на нужном уровне можно её перехватит и обработать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2016, 14:15 |
|
DataGrid с кнопкой в строке
|
|||
---|---|---|---|
#18+
Shocker.Pro, спасибо за помощь - заработало. В следующий раз буду дублировать код на на C#. Понимаю, что Basic зло для WPF, но пока всилу привычки не могу полностью перейти на C#. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2016, 09:24 |
|
DataGrid с кнопкой в строке
|
|||
---|---|---|---|
#18+
Roman Mejtes, скиньте посмотреть, когда будет возможность плиз ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2016, 09:25 |
|
DataGrid с кнопкой в строке
|
|||
---|---|---|---|
#18+
vb_subRoman Mejtes, скиньте посмотреть, когда будет возможность плиз http://rgho.st/8cJJdkdRK пример, правда старый, я его уже кидал его в этом разделе, но ссылка сдохла, я обновил ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2016, 11:04 |
|
|
start [/forum/topic.php?fid=21&fpage=10&tid=1440592]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 234ms |
total: | 405ms |
0 / 0 |