|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Подскажите плиз, хочу разобраться для чуть более сложного примера. Нужно в зависимости от значений свойства к примеру задать различный Background у TextBlock Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
где Код: xml 1.
это на форме есть TreeView, там как раз и находится TextBlock, забинденный на коллекцию объектов вида Код: c# 1. 2. 3. 4. 5.
Данные отображаются, но цвет не меняется.... С WPF начинаю только разбираться, подскажите плиз - как сделать чтобы биндилось правильно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2014, 17:15 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Sergey S, Попробуйте так: Код: xml 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2014, 23:58 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Большое спасибо. почти получилось, но подсвечивает красным все объекты TextBlock: Код: 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.
А как менять характеристики именно выбранного, того что прошел условия проверки? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 10:39 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Зачем городить эту триггерную xaml-лапшу? Что может быть проще делать внятный анализ во вью модели, а на выход отдавать годное значение для байдинга xaml. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 13:06 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Да вполне может быть, я до этого все делал или без гуи или под формочки, wpf - первое у меня, вот разбираюсь походу с wpf, mvvm. Поэтому и корявое пока все будет.... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 16:14 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Sergey S, Только теперь понял, что именно Вы пытаетесь добиться. В таком случае придется переписать стандартный стиль TreeViewItem, который можно найти здесь . У Josh Smith есть хороший пример с пояснениями здесь . МСУ, Вопрос простоты зависит от степени владения xaml. Философия WPF/MVVM базируется на разделении логики обработки данных и их представлении. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 20:16 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
iMrTidyВопрос простоты зависит от степени владения xaml. Философия WPF/MVVM базируется на разделении логики обработки данных и их представлении. Логика во вью ничего хорошего сулить не может, кроме проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 20:58 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
МСУiMrTidyВопрос простоты зависит от степени владения xaml. Философия WPF/MVVM базируется на разделении логики обработки данных и их представлении. Логика во вью ничего хорошего сулить не может, кроме проблем. Я с Вами полностью согласен, но, на мой взгляд, изменение стандартной подсветки по условию все же презентация. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2014, 21:36 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Большое спасибо, буду разбираться ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 10:53 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Согласен с МСУ. Сам когда-то делал подсветку элементов. Вся логика была зашита во ViewModel. Для данного примера, нужно будет создать одно поле по вьехе(там где Name) и забиндить на него Forecolor у TextBlock. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 11:46 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Ну или свой конвертер для выбора цвета написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 12:19 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Приблизительно понял, спасибо, буду смотреть ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 12:20 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
МСУНу или свой конвертер для выбора цвета написать.Благодаря триггерам конвертеры писать не надо, что экономит время и нервы. В триггере можно установить несколько свойств по одному условию. В триггерах могут быть анимации и прочие бантики. Правильный ответ: 1. Во ViewModel разместить прикладную логику. Сделать булевое свойство. 2. Во View разместить DataTrigger. Привязать его к булевому свойству. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 12:23 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Алексей КБлагодаря триггерам конвертеры писать не надо, что экономит время и нервы. Да нафик твои триггеры не нужны :) Особенно когда этот xaml-лапшекод с логикой разрастается и поддерживать это уныние становится всё труднее и труднее. Что может быть проще написать даже самую неимоверно сложную логику во вью модели и отдать выхлоп в нужное свойство, которое тупо привязывается в разметке xaml? Алексей К1. Во ViewModel разместить прикладную логику. Сделать булевое свойство. Да. Алексей К2. Во View разместить DataTrigger. Привязать его к булевому свойству. Ни в коей мере ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 12:46 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
МСУАлексей КБлагодаря триггерам конвертеры писать не надо, что экономит время и нервы. Да нафик твои триггеры не нужны :)Ну я согласен. Если не умеешь - лучше не использовать. :-) Смотрим примеры , учимся... Ну и пример с анимацией не помешает. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 13:18 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Алексей КНу я согласен. Если не умеешь - лучше не использовать. :-) А чего их там уметь? :) Хотя я, конечно, допускаю, что фича сделана для тех, у кого семь пядей во лбу. Алексей КСмотрим примеры , учимся... Я в целом не против триггеров, но только если они самые простые, как в твоём случае. Банальная пара условий. Но когда представление разрастается и распухает, работать с ним становится невыносимо (даже декомпозиция не поможет). Вью модель - это спасение от всех бед. Что может быть проще? Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 13:41 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
МСУЯ в целом не против триггеров, но только если они самые простые, как в твоём случае. Банальная пара условий.Ну я же говорю, прикладная логика живёт во ViewModel. Во View живёт пара условий логика представления. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 13:57 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
МСУБанальная пара условий. Но когда представление разрастается и распухает, работать с ним становится невыносимо (даже декомпозиция не поможет). Вью модель - это спасение от всех бед.Ну есть случай на триггерах чуть посложнее. Оно было раньше на конвертерах, но не понравилось. На триггерах получилось удобнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 14:21 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
МСУЧто может быть проще? Код: c# 1.
ViewModel может приходить с сервера. В этом случае для неё придётся городить класс-обёртку с логикой представления. Это неудобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 14:24 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
Алексей КМСУЯ в целом не против триггеров, но только если они самые простые, как в твоём случае. Банальная пара условий.Ну я же говорю, прикладная логика живёт во ViewModel. Во View живёт пара условий логика представления. Во view не стоит пихать логику. Триггера - это залипушка для быстренько нагавнять, чтобы работало. Когда будет много UI логики + сложная логика, это разумно вынести в централизованное место (view model). Алексей КМСУБанальная пара условий. Но когда представление разрастается и распухает, работать с ним становится невыносимо (даже декомпозиция не поможет). Вью модель - это спасение от всех бед.Ну есть случай на триггерах чуть посложнее. Оно было раньше на конвертерах, но не понравилось. На триггерах получилось удобнее. Это эпический ад. Алексей КМСУЧто может быть проще? Код: c# 1.
ViewModel может приходить с сервера. В этом случае для неё придётся городить класс-обёртку с логикой представления. Это неудобно. View модель, приходящая с сервера - это скорее всего какое-то экзотическое действо, нежели внятная практика использования слоя. Но даже если и так, городи обертку, не вижу поводов для паники. Но триггера во вьюхе - это уныние. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 15:34 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
МСУАлексей Кпропущено... Ну есть случай на триггерах чуть посложнее. Оно было раньше на конвертерах, но не понравилось. На триггерах получилось удобнее. Это эпический ад.Это трудовые будни контролописателя. :-) Ну если хочешь - напиши свой SplitContainer, сравним. :-) МСУАлексей Кпропущено... ViewModel может приходить с сервера. В этом случае для неё придётся городить класс-обёртку с логикой представления. Это неудобно. View модель, приходящая с сервера - это скорее всего какое-то экзотическое действо, нежели внятная практика использования слоя.Это скорее путаница в терминологии. Данные приходят с сервера - это Model. Эти же данные биндим без всяких обёрток к контролам - значит это ViewModel. Получается частный случай, оно одновременно и Model и ViewModel. Такие дела... МСУНо даже если и так, городи обертку, не вижу поводов для паники. Но триггера во вьюхе - это уныние.А я сразу сказал что не умеешь. Это тебе не то что в Asp.Net-те разором HTML собирать. Тут всё гораздо жёстче. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 19:05 |
|
Вопрос про Binding и Trigger MVVM
|
|||
---|---|---|---|
#18+
МСУАлексей Кпропущено... Ну есть случай на триггерах чуть посложнее. Оно было раньше на конвертерах, но не понравилось. На триггерах получилось удобнее. Это эпический ад.зы: видел я SplitContainer, сделанный на базе Panel с кастомными MeasureOverride / ArrangeOverride. Вот там был ад. А тут всё просто и элегантно. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2014, 19:09 |
|
|
start [/forum/moderation_log.php?user_name=%D0%92%D1%8B%2C+%D0%B5%D1%81%D0%BB%D0%B8+%D0%BD%D0%B0%D1%81%D1%82%D0%B0%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%D0%B5%2C]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 1763ms |
total: | 1924ms |
0 / 0 |