powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Button в DataTemplate можно реализовать только через команду?
10 сообщений из 10, страница 1 из 1
Button в DataTemplate можно реализовать только через команду?
    #40049603
Евгений, Екатеринбург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понял, DataTemplate не поддерживает обработчики событий, поэтому OnClick обработать не получится, получается, что из альтернатив только UserControl или использование команд? Т.е. не заморачиваться и создать UserControl, в него запихать кнопку и DataTemplate. Есть ли другой разумный способ?
...
Рейтинг: 0 / 0
Button в DataTemplate можно реализовать только через команду?
    #40049608
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумный способ - использовать команды
...
Рейтинг: 0 / 0
Button в DataTemplate можно реализовать только через команду?
    #40049621
Евгений, Екатеринбург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, Благодарю - так и думал, буду пробовать.
...
Рейтинг: 0 / 0
Button в DataTemplate можно реализовать только через команду?
    #40049650
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Евгений, Екатеринбург
Как я понял, DataTemplate не поддерживает обработчики событий, поэтому OnClick обработать не получится....

Как так?
Почему не поддерживает?

Вы скорее всего путаете с областью видимости.
DataTemplate "не знает" где его применят, поэтому он не может "достать" обработчик из Code Behind по месту применения.
Тем более, что и применять один и тот же экземпляр могут в разных местах.
Задать (один из вариантов) можно через обработчики статического класса.
Пример использования статических обработчиков: https://www.cyberforum.ru/wpf-silverlight/thread2771863-page2.html#post15193185
Там не для Click, но принцип поймёте.

Другое дело, что потребность в таком с большой вероятностью говорит о том, что есть серьёзные проблемы с архитектурой приложения.
WPF - это инструмент построения GUI приложения, а не самого приложения.
И желательно (за редким исключением) Code Behind Окна, вообще, не использовать.
Даже для UserControl это не очень желательно.
...
Рейтинг: 0 / 0
Button в DataTemplate можно реализовать только через команду?
    #40050122
Евгений, Екатеринбург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eld Hasp,
Через статический класс мне кажется какой-то кривой метод, хотя может и имеет где-то право на жизнь.
...
Рейтинг: 0 / 0
Button в DataTemplate можно реализовать только через команду?
    #40050125
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем, собственно, команды не устраивают? Ваш DataTemplate не имеет датаконтекста?
...
Рейтинг: 0 / 0
Button в DataTemplate можно реализовать только через команду?
    #40050127
Евгений, Екатеринбург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,
DataContext есть. Команды устраивают, просто я с ними только начал разбираться. У меня в окне вместе с классом редактируется подкласс, который много где редактируется, поэтому сделал его как DataTemplate. Хочу сделать кнопку вызова расширенного окна редактирования подкласса, соответственно в команду еще придется передавать параметр. Обработчик сделать нельзя.
Вот и думал, что использовать - UserControl с которым я разобрался уже или команды, с которыми еще не разобрался. Но уже начал разбираться, думаю получится.
...
Рейтинг: 0 / 0
Button в DataTemplate можно реализовать только через команду?
    #40050313
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Евгений, Екатеринбург
Eld Hasp,
Через статический класс мне кажется какой-то кривой метод, хотя может и имеет где-то право на жизнь.

Тем не менее это лучше чем в Code Behind.

Но Click можно использовать только, если в нём будет обработка какой-то логики Представления.
Если же нужна обработка данных, то здесь без вариантов - только команды!
...
Рейтинг: 0 / 0
Button в DataTemplate можно реализовать только через команду?
    #40050332
Евгений, Екатеринбург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eld Hasp

Но Click можно использовать только, если в нём будет обработка какой-то логики Представления.
Если же нужна обработка данных, то здесь без вариантов - только команды!

Понял, благодарю!
...
Рейтинг: 0 / 0
Button в DataTemplate можно реализовать только через команду?
    #40050367
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно просто создать класс команды унаследованный от ICommand или др. затем инстанцировать этот тип в ресурсах и подключить его к кнопке через StaticResource. Лично мне этот способ очень нравится тем, что позволяет вынести код команды в отдельный класс и потом его многократно использовать, удобнее реализовывать Undo\Redo и много чего еще
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Button в DataTemplate можно реализовать только через команду?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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