|
Button в DataTemplate можно реализовать только через команду?
|
|||
---|---|---|---|
#18+
Как я понял, DataTemplate не поддерживает обработчики событий, поэтому OnClick обработать не получится, получается, что из альтернатив только UserControl или использование команд? Т.е. не заморачиваться и создать UserControl, в него запихать кнопку и DataTemplate. Есть ли другой разумный способ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 16:24 |
|
Button в DataTemplate можно реализовать только через команду?
|
|||
---|---|---|---|
#18+
Разумный способ - использовать команды ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 16:35 |
|
Button в DataTemplate можно реализовать только через команду?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Благодарю - так и думал, буду пробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:02 |
|
Button в DataTemplate можно реализовать только через команду?
|
|||
---|---|---|---|
#18+
Евгений, Екатеринбург Как я понял, DataTemplate не поддерживает обработчики событий, поэтому OnClick обработать не получится.... Как так? Почему не поддерживает? Вы скорее всего путаете с областью видимости. DataTemplate "не знает" где его применят, поэтому он не может "достать" обработчик из Code Behind по месту применения. Тем более, что и применять один и тот же экземпляр могут в разных местах. Задать (один из вариантов) можно через обработчики статического класса. Пример использования статических обработчиков: https://www.cyberforum.ru/wpf-silverlight/thread2771863-page2.html#post15193185 Там не для Click, но принцип поймёте. Другое дело, что потребность в таком с большой вероятностью говорит о том, что есть серьёзные проблемы с архитектурой приложения. WPF - это инструмент построения GUI приложения, а не самого приложения. И желательно (за редким исключением) Code Behind Окна, вообще, не использовать. Даже для UserControl это не очень желательно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2021, 17:52 |
|
Button в DataTemplate можно реализовать только через команду?
|
|||
---|---|---|---|
#18+
Eld Hasp, Через статический класс мне кажется какой-то кривой метод, хотя может и имеет где-то право на жизнь. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 09:19 |
|
Button в DataTemplate можно реализовать только через команду?
|
|||
---|---|---|---|
#18+
А чем, собственно, команды не устраивают? Ваш DataTemplate не имеет датаконтекста? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 09:30 |
|
Button в DataTemplate можно реализовать только через команду?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, DataContext есть. Команды устраивают, просто я с ними только начал разбираться. У меня в окне вместе с классом редактируется подкласс, который много где редактируется, поэтому сделал его как DataTemplate. Хочу сделать кнопку вызова расширенного окна редактирования подкласса, соответственно в команду еще придется передавать параметр. Обработчик сделать нельзя. Вот и думал, что использовать - UserControl с которым я разобрался уже или команды, с которыми еще не разобрался. Но уже начал разбираться, думаю получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 09:37 |
|
Button в DataTemplate можно реализовать только через команду?
|
|||
---|---|---|---|
#18+
Евгений, Екатеринбург Eld Hasp, Через статический класс мне кажется какой-то кривой метод, хотя может и имеет где-то право на жизнь. Тем не менее это лучше чем в Code Behind. Но Click можно использовать только, если в нём будет обработка какой-то логики Представления. Если же нужна обработка данных, то здесь без вариантов - только команды! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 14:17 |
|
Button в DataTemplate можно реализовать только через команду?
|
|||
---|---|---|---|
#18+
Eld Hasp Но Click можно использовать только, если в нём будет обработка какой-то логики Представления. Если же нужна обработка данных, то здесь без вариантов - только команды! Понял, благодарю! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 14:44 |
|
Button в DataTemplate можно реализовать только через команду?
|
|||
---|---|---|---|
#18+
можно просто создать класс команды унаследованный от ICommand или др. затем инстанцировать этот тип в ресурсах и подключить его к кнопке через StaticResource. Лично мне этот способ очень нравится тем, что позволяет вынести код команды в отдельный класс и потом его многократно использовать, удобнее реализовывать Undo\Redo и много чего еще ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2021, 15:38 |
|
|
start [/forum/topic.php?fid=21&msg=40050125&tid=1440249]: |
0ms |
get settings: |
18ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
36ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
192ms |
get tp. blocked users: |
1ms |
others: | 2308ms |
total: | 2567ms |
0 / 0 |