|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Алексей Кuser7320И вот такие портянки нужно писать для КАЖДОГО события. Т. е. для каждого события регистрируются прикрепляемые свойства и прочая оснастка делается.Так никто ж не заставляет. Подписывайся на события явно если хочешь. Но это можно делать только в code-behind и OnApplyTemplate. И не наткнись на утечку памяти. user7320А у вас почему-то только через свойства зависимостей всё обходится.По моим ссылкам выше есть все ответы на твои вопросы. :-) user7320Кстати, про DelegateCommand я наврал - их я из Призмы взял.Я знаю. :-) Лучше возьми реализацию RelayCommand через CommandManager. Коде-бихайнд - для слабаков. Мы не ищем лёгких путей. А релей комманд не хочу - она не официальная (вроде, первый раз я такое название у Джоша Смита встретил), и потому вопросы поддержки в будущем стоят. Да и как я понял, релей комманд - это подмножество делегит комманд. Т. е. всё, что умеет релей, умеет и делегит. Просто первая легче. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 15:25 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320Коде-бихайнд - для слабаков.Распространённое заблуждение. "Вам шашечки или ехать?" (ц) user7320А релей комманд не хочу - она не официальная (вроде, первый раз я такое название у Джоша Смита встретил), и потому вопросы поддержки в будущем стоят. Да и как я понял, релей комманд - это подмножество делегит комманд. Т. е. всё, что умеет релей, умеет и делегит. Просто первая легче.Официальная реализация ICommand это RoutedCommand, которой никто не пользуется. В RelayCommand иначе выполнен CanExecuteChanged: Код: c# 1. 2. 3. 4. 5.
На мой взгляд, это самая удачная реализация. зы: любителям SL самое время расстроиться из-за отсутствия CommandManager :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 15:34 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
В RelayCommand иначе выполнен CanExecuteChanged в отличие от DelegateCommand . ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 15:35 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Алексей Кuser7320Коде-бихайнд - для слабаков.Распространённое заблуждение. "Вам шашечки или ехать?" (ц) А ведь чел дело говорит. Как считаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 16:21 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
МСУАлексей Кпропущено... Распространённое заблуждение. "Вам шашечки или ехать?" (ц) А ведь чел дело говорит. Как считаешь? Я считаю что это болезнь - бехайндофобия, со временем может перерасти в моделефилию. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 17:16 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Алексей Кuser7320Коде-бихайнд - для слабаков.Распространённое заблуждение. "Вам шашечки или ехать?" (ц) user7320А релей комманд не хочу - она не официальная (вроде, первый раз я такое название у Джоша Смита встретил), и потому вопросы поддержки в будущем стоят. Да и как я понял, релей комманд - это подмножество делегит комманд. Т. е. всё, что умеет релей, умеет и делегит. Просто первая легче.Официальная реализация ICommand это RoutedCommand, которой никто не пользуется. В RelayCommand иначе выполнен CanExecuteChanged: Код: c# 1. 2. 3. 4. 5.
На мой взгляд, это самая удачная реализация. зы: любителям SL самое время расстроиться из-за отсутствия CommandManager :-) Любителям SL нужно радоваться, что у них нет такой порнографии. Статик подписывается на события - прямая дорога к утечкам памяти ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 17:20 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
SeVaЛюбителям SL нужно радоваться, что у них нет такой порнографии. Статик подписывается на события - прямая дорога к утечкам памятиЧто-то мне подсказывает, что внутри CommandManager активно используются WeakReference. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 17:24 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Weak Event Pattern, не? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 17:28 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Алексей К, а где ты отписываться будешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 17:56 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
SeVaАлексей К, а где ты отписываться будешь?Нигде. Само сборкой мусора отпишется. Сам же давиче слабые ссылки нахваливал. Ну может какие контролы и отписываются. Не имеет значения. Да и почему ко мне эти вопросы? Не я же это придумал. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 18:19 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Алексей КМСУпропущено... А ведь чел дело говорит. Как считаешь? Я считаю что это болезнь - бехайндофобия, со временем может перерасти в моделефилию. Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 18:44 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320Алексей Кпропущено... Я считаю что это болезнь - бехайндофобия, со временем может перерасти в моделефилию. Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться. Тут описаны основные преимущества и недостатки UserControl в том числе. Завтра сравнительную табличку планирую поправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 18:53 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320Алексей Кпропущено... Я считаю что это болезнь - бехайндофобия, со временем может перерасти в моделефилию. Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться. Задача комфортно решается с помощью оконного сервиса, а не такими ужастиками. http://codearticles.ru/articles/2421 П.С. Лично я против статических подписок на евенты. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 20:33 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Алексей Кuser7320пропущено... Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться. Тут описаны основные преимущества и недостатки UserControl в том числе. Завтра сравнительную табличку планирую поправить. авторНедостатки: Класс ViewModel должен быть потомком класса Control. авторПотомок класса Control в паре с ControlTemplate - это нечто среднее между DataTemplate и UserControl. Данный подход в основном применяется для решения системных задач, в которых часто требуется тесная интеграция ViewModel и View, возможность наследования ViewModel и описания нескольких View для одной ViewModel. В огороде бузина, а в Киеве дядька. Где ты выкопал "тесную интеграцию"? Это не имеет никакого отношения к шаблону ViewModel. ViewModel и WPF созданы совсем для другого - не иметь никаких зависимостей б\л от представления. Это полный бред(не в обиду). Зачем ты пачкаешь мозги другим? Вся прелесть xaml в том, что нет необходимости в тех наворотах UI, которые у тебя. Все делается гораздо проще без них. Спрячь это и никому не показывай. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 20:41 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
SeVaViewModel и WPF созданы совсем для другого - не иметь никаких зависимостей б\л от представления.Это один из возможных в WPF подходов. Он далеко не на все случаи жизни. Зацикливаться на нём не стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 20:46 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
SeVaЭто полный бред(не в обиду).Да я и не обижаюсь. :-) Это моё мнение, которое отличается от твоего, не более того. Просто ты зациклился на типовых статьях про MVVM, в которых упорно игнорируются возможности UserControl/CustomControl. Я решил посмотреть несколько шире. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 20:51 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
SeVaВся прелесть xaml в том, что нет необходимости в тех наворотах UI, которые у тебя. Все делается гораздо проще без них.О каких "наворотах" идёт речь? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 20:53 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
МСУП.С. Лично я против статических подписок на евенты.Через Weak Event можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 20:59 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
МСУuser7320пропущено... Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться. Задача комфортно решается с помощью оконного сервиса, а не такими ужастиками. http://codearticles.ru/articles/2421 П.С. Лично я против статических подписок на евенты. Алексей Кuser7320пропущено... Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться. Тут описаны основные преимущества и недостатки UserControl в том числе. Завтра сравнительную табличку планирую поправить. У кого тут бихайндофобия? Зачем писать какие-то сервисы и вообще что-то писать, если вот оно - только протяни руку и тебе доступно всё богатство и незамутнённость кодебихайнда. То, что модалки так черезжопно делаются в этом ВПФ-MVVM - проблемы либо MVVM, либо разработчиков ВПФа. Не до конца, значит, они его под MVVM заточили. Или таки проблема в MVVM - не везде этот йогурт одинакого полезен. Меня вообще раздражает, когда раньше что-то было можно, а сейчас нельзя. В ВПФ из стрима массив байт получить как нефиг делать. В Сильвере для этого нужно извернуться и либо замутить что-то низкоуровневое руками, либо сторонние библиотеки использовать. Зато 5,5 МБ дистриб, ага. Да кому он, нафиг, нужен этот малый размер, да за такие жертвы, в наше-то время онлайнового фуллХД. Вообще не понимаю, почему нет смартфонов и планшетов на х86 атомах с полноценной Виндой и Дотнетом на борту. И ДХ тоже. Да, 11.2. Ну и кроме этих плиток чтобы была возможность включить обычный десктопный интерфейс. И пофиг, что не юзабельно на 5", всё равно найдутся извращенцы, которые подключат этот смарт к фуллХД монику или ТВ и будут так его использовать. Вот тогда все эти айфоны с андроидами соснут. Или вот раньше можно было легко связать события и код, а сейчас - из всего разнообразия событий один условный клик на четыре контрола и ипитесь с ними как хотите. Потому что МВВМ. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 22:02 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320У кого тут бихайндофобия?Ну сам же писал: user7320Коде-бихайнд - для слабаковТипичный симптом. Или это был сарказм? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 06:01 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320Или вот раньше можно было легко связать события и код Это и сейчас легко связывается. У вас с этим проблемы? user7320Потому что МВВМ. Потому что WPF. Потому что в некоторых случаях у разметки может вообще не быть code behind в принципе. И далее переход от частностей к общему как к методике. Но при этом в частных случаях никто не запрещает пользоваться code behind'ом. user7320Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться. Да, лучше использовать нормальный диконтейнер вместо самописного велосипеда. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 06:10 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Сон Веры Павловныuser7320Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться. Да, лучше использовать нормальный диконтейнер вместо самописного велосипеда. Наверное, три года назад всех этих новомодных контейнеров просто не было или они были в зачатке, поэтому и писали свои велосипеды. Во многих случаях эти статьи джошесмитовские уже устарели. Но на всяких StackOverflow на них упорно продолжают давать ссылки. А если задать тот же вопрос, какой-нибудь умник зайдёт и скажет "possible duplicaton?", вместо того, чтобы дать ссылку на осовремененный вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 06:21 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
user7320Наверное, три года назад всех этих новомодных контейнеров просто не было или они были в зачатке Эмм... CastleWindsor существует как проект с 2003-го года, на гитхабе появился в 2009-м. Spring.NET существует c 2004-го. Ninject - c 2007-го. Autofac - вроде как с 2010-го. Unity - c 2008-го. user7320Во многих случаях эти статьи джошесмитовские уже устарели. Про все статьи не скажу, а ServiceLocator не то что бы устарел, но считается антипаттерном. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 06:37 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
Алексей КSeVaЭто полный бред(не в обиду).Да я и не обижаюсь. :-) Это моё мнение, которое отличается от твоего, не более того. Просто ты зациклился на типовых статьях про MVVM, в которых упорно игнорируются возможности UserControl/CustomControl. Я решил посмотреть несколько шире. И в чем эта ширина заключается? Я увидел только старые подходы, которые построены на специально обученных компонентнах, которые что-то умеют. Ты не понял основную идею wpf - уйти от этого. Двойное связывание, команды,mvvm и прочее позволяют полностью не зависеть от интерфейса, что значительно упрощает разработку фреймворков на любой вкус и цвет, а не иметь куцый набор контролов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 08:35 |
|
Задачка на профпригодность
|
|||
---|---|---|---|
#18+
SeVaИ в чем эта ширина заключается?В том что везде рассматривается применение только DataTemplate или UserControl без использования code-behind. Мне захотелось рассмотреть одновременно все имеющиеся возможности и сравнить их. SeVaЯ увидел только старые подходы, которые построены на специально обученных компонентнах, которые что-то умеют.Полохо смотрел. Например, реализация TabbedMDI . Используются как традиционные возможности вроде code-behind + подписка на события, так и новые возможности вроде ICommand, DataTemplate, Style, Trigger и т. п. Одно другому не мешает. SeVaТы не понял основную идею wpf - уйти от этого.Не "уйти", а дополнить. Зачем отказываться от традиционных возможностей если они полностью устраивают? Это глупо. SeVaДвойное связывание, команды,mvvm и прочее позволяют полностью не зависеть от интерфейса, что значительно упрощает разработку фреймворков на любой вкус и цвет, а не иметь куцый набор контролов.Это зависит от решаемой задачи и личных предпочтений. Навязывать окружающим какое-то одно решение неразумно. Вспомнилось: "Это полный бред(не в обиду). Зачем ты пачкаешь мозги другим?" (ц) :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 08:53 |
|
|
start [/forum/topic.php?fid=20&msg=38495744&tid=1401776]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 356ms |
total: | 503ms |
0 / 0 |