powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Задачка на профпригодность
25 сообщений из 463, страница 13 из 19
Задачка на профпригодность
    #38495724
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кuser7320И вот такие портянки нужно писать для КАЖДОГО события. Т. е. для каждого события регистрируются прикрепляемые свойства и прочая оснастка делается.Так никто ж не заставляет. Подписывайся на события явно если хочешь. Но это можно делать только в code-behind и OnApplyTemplate. И не наткнись на утечку памяти.

user7320А у вас почему-то только через свойства зависимостей всё обходится.По моим ссылкам выше есть все ответы на твои вопросы. :-)

user7320Кстати, про DelegateCommand я наврал - их я из Призмы взял.Я знаю. :-)

Лучше возьми реализацию RelayCommand через CommandManager.
Коде-бихайнд - для слабаков. Мы не ищем лёгких путей.

А релей комманд не хочу - она не официальная (вроде, первый раз я такое название у Джоша Смита встретил), и потому вопросы поддержки в будущем стоят. Да и как я понял, релей комманд - это подмножество делегит комманд. Т. е. всё, что умеет релей, умеет и делегит. Просто первая легче.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38495739
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Коде-бихайнд - для слабаков.Распространённое заблуждение. "Вам шашечки или ехать?" (ц)

user7320А релей комманд не хочу - она не официальная (вроде, первый раз я такое название у Джоша Смита встретил), и потому вопросы поддержки в будущем стоят. Да и как я понял, релей комманд - это подмножество делегит комманд. Т. е. всё, что умеет релей, умеет и делегит. Просто первая легче.Официальная реализация ICommand это RoutedCommand, которой никто не пользуется.

В RelayCommand иначе выполнен CanExecuteChanged:
Код: c#
1.
2.
3.
4.
5.
        event EventHandler ICommand.CanExecuteChanged
        {
            add { CommandManager.RequerySuggested += value; }
            remove { CommandManager.RequerySuggested -= value; }
        }


На мой взгляд, это самая удачная реализация.

зы: любителям SL самое время расстроиться из-за отсутствия CommandManager :-)
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38495744
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В RelayCommand иначе выполнен CanExecuteChanged в отличие от DelegateCommand .
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38495826
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кuser7320Коде-бихайнд - для слабаков.Распространённое заблуждение. "Вам шашечки или ехать?" (ц)
А ведь чел дело говорит. Как считаешь?
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38495907
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Распространённое заблуждение. "Вам шашечки или ехать?" (ц)
А ведь чел дело говорит. Как считаешь? Я считаю что это болезнь - бехайндофобия, со временем может перерасти в моделефилию.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38495910
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кuser7320Коде-бихайнд - для слабаков.Распространённое заблуждение. "Вам шашечки или ехать?" (ц)

user7320А релей комманд не хочу - она не официальная (вроде, первый раз я такое название у Джоша Смита встретил), и потому вопросы поддержки в будущем стоят. Да и как я понял, релей комманд - это подмножество делегит комманд. Т. е. всё, что умеет релей, умеет и делегит. Просто первая легче.Официальная реализация ICommand это RoutedCommand, которой никто не пользуется.

В RelayCommand иначе выполнен CanExecuteChanged:
Код: c#
1.
2.
3.
4.
5.
        event EventHandler ICommand.CanExecuteChanged
        {
            add { CommandManager.RequerySuggested += value; }
            remove { CommandManager.RequerySuggested -= value; }
        }



На мой взгляд, это самая удачная реализация.

зы: любителям SL самое время расстроиться из-за отсутствия CommandManager :-)

Любителям SL нужно радоваться, что у них нет такой порнографии. Статик подписывается на события - прямая дорога к утечкам памяти
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38495918
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaЛюбителям SL нужно радоваться, что у них нет такой порнографии. Статик подписывается на события - прямая дорога к утечкам памятиЧто-то мне подсказывает, что внутри CommandManager активно используются WeakReference.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38495927
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Weak Event Pattern, не?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public static  event EventHandler RequerySuggested
{
    add
    {
        RequerySuggestedEventManager.AddHandler(null, value);
        return;
    }
    remove
    {
        RequerySuggestedEventManager.RemoveHandler(null, value);
        return;
    }
}
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38495981
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, а где ты отписываться будешь?
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496024
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaАлексей К, а где ты отписываться будешь?Нигде. Само сборкой мусора отпишется. Сам же давиче слабые ссылки нахваливал. Ну может какие контролы и отписываются. Не имеет значения.

Да и почему ко мне эти вопросы? Не я же это придумал.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496062
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

А ведь чел дело говорит. Как считаешь? Я считаю что это болезнь - бехайндофобия, со временем может перерасти в моделефилию.
Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496076
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Алексей Кпропущено...
Я считаю что это болезнь - бехайндофобия, со временем может перерасти в моделефилию.
Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться. Тут описаны основные преимущества и недостатки UserControl в том числе. Завтра сравнительную табличку планирую поправить.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496188
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Алексей Кпропущено...
Я считаю что это болезнь - бехайндофобия, со временем может перерасти в моделефилию.
Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться.
Задача комфортно решается с помощью оконного сервиса, а не такими ужастиками.
http://codearticles.ru/articles/2421

П.С. Лично я против статических подписок на евенты.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496195
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кuser7320пропущено...

Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться. Тут описаны основные преимущества и недостатки UserControl в том числе. Завтра сравнительную табличку планирую поправить.

авторНедостатки:
Класс ViewModel должен быть потомком класса Control.


авторПотомок класса Control в паре с ControlTemplate - это нечто среднее между DataTemplate и UserControl. Данный подход в основном применяется для решения системных задач, в которых часто требуется тесная интеграция ViewModel и View, возможность наследования ViewModel и описания нескольких View для одной ViewModel.


В огороде бузина, а в Киеве дядька. Где ты выкопал "тесную интеграцию"? Это не имеет никакого отношения к шаблону ViewModel. ViewModel и WPF созданы совсем для другого - не иметь никаких зависимостей б\л от представления.
Это полный бред(не в обиду). Зачем ты пачкаешь мозги другим? Вся прелесть xaml в том, что нет необходимости в тех наворотах UI, которые у тебя. Все делается гораздо проще без них.

Спрячь это и никому не показывай.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496203
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaViewModel и WPF созданы совсем для другого - не иметь никаких зависимостей б\л от представления.Это один из возможных в WPF подходов. Он далеко не на все случаи жизни. Зацикливаться на нём не стоит.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496205
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaЭто полный бред(не в обиду).Да я и не обижаюсь. :-)

Это моё мнение, которое отличается от твоего, не более того. Просто ты зациклился на типовых статьях про MVVM, в которых упорно игнорируются возможности UserControl/CustomControl. Я решил посмотреть несколько шире.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496208
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaВся прелесть xaml в том, что нет необходимости в тех наворотах UI, которые у тебя. Все делается гораздо проще без них.О каких "наворотах" идёт речь?
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496215
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУП.С. Лично я против статических подписок на евенты.Через Weak Event можно.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496253
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУuser7320пропущено...

Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться.
Задача комфортно решается с помощью оконного сервиса, а не такими ужастиками.
http://codearticles.ru/articles/2421

П.С. Лично я против статических подписок на евенты.

Алексей Кuser7320пропущено...

Не, я всё же нашёл оправдание применению кодебихайнда - я там делаю мессадж боксы и прочие модалки. Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться. Тут описаны основные преимущества и недостатки UserControl в том числе. Завтра сравнительную табличку планирую поправить.

У кого тут бихайндофобия? Зачем писать какие-то сервисы и вообще что-то писать, если вот оно - только протяни руку и тебе доступно всё богатство и незамутнённость кодебихайнда. То, что модалки так черезжопно делаются в этом ВПФ-MVVM - проблемы либо MVVM, либо разработчиков ВПФа. Не до конца, значит, они его под MVVM заточили. Или таки проблема в MVVM - не везде этот йогурт одинакого полезен.

Меня вообще раздражает, когда раньше что-то было можно, а сейчас нельзя. В ВПФ из стрима массив байт получить как нефиг делать. В Сильвере для этого нужно извернуться и либо замутить что-то низкоуровневое руками, либо сторонние библиотеки использовать. Зато 5,5 МБ дистриб, ага. Да кому он, нафиг, нужен этот малый размер, да за такие жертвы, в наше-то время онлайнового фуллХД. Вообще не понимаю, почему нет смартфонов и планшетов на х86 атомах с полноценной Виндой и Дотнетом на борту. И ДХ тоже. Да, 11.2. Ну и кроме этих плиток чтобы была возможность включить обычный десктопный интерфейс. И пофиг, что не юзабельно на 5", всё равно найдутся извращенцы, которые подключат этот смарт к фуллХД монику или ТВ и будут так его использовать. Вот тогда все эти айфоны с андроидами соснут.

Или вот раньше можно было легко связать события и код, а сейчас - из всего разнообразия событий один условный клик на четыре контрола и ипитесь с ними как хотите. Потому что МВВМ.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496392
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320У кого тут бихайндофобия?Ну сам же писал:
user7320Коде-бихайнд - для слабаковТипичный симптом.

Или это был сарказм? :-)
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496393
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Или вот раньше можно было легко связать события и код
Это и сейчас легко связывается. У вас с этим проблемы?
user7320Потому что МВВМ.
Потому что WPF. Потому что в некоторых случаях у разметки может вообще не быть code behind в принципе. И далее переход от частностей к общему как к методике. Но при этом в частных случаях никто не запрещает пользоваться code behind'ом.
user7320Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться.
Да, лучше использовать нормальный диконтейнер вместо самописного велосипеда.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496395
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловныuser7320Ибо городить что-то подобное этому ради сраного MVVM - лучше удавиться.
Да, лучше использовать нормальный диконтейнер вместо самописного велосипеда.
Наверное, три года назад всех этих новомодных контейнеров просто не было или они были в зачатке, поэтому и писали свои велосипеды. Во многих случаях эти статьи джошесмитовские уже устарели. Но на всяких StackOverflow на них упорно продолжают давать ссылки. А если задать тот же вопрос, какой-нибудь умник зайдёт и скажет "possible duplicaton?", вместо того, чтобы дать ссылку на осовремененный вариант.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496398
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Наверное, три года назад всех этих новомодных контейнеров просто не было или они были в зачатке
Эмм... CastleWindsor существует как проект с 2003-го года, на гитхабе появился в 2009-м. Spring.NET существует c 2004-го. Ninject - c 2007-го. Autofac - вроде как с 2010-го. Unity - c 2008-го.
user7320Во многих случаях эти статьи джошесмитовские уже устарели.
Про все статьи не скажу, а ServiceLocator не то что бы устарел, но считается антипаттерном.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496425
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КSeVaЭто полный бред(не в обиду).Да я и не обижаюсь. :-)

Это моё мнение, которое отличается от твоего, не более того. Просто ты зациклился на типовых статьях про MVVM, в которых упорно игнорируются возможности UserControl/CustomControl. Я решил посмотреть несколько шире.

И в чем эта ширина заключается? Я увидел только старые подходы, которые построены на специально обученных компонентнах, которые что-то умеют. Ты не понял основную идею wpf - уйти от этого.
Двойное связывание, команды,mvvm и прочее позволяют полностью не зависеть от интерфейса, что значительно упрощает разработку фреймворков на любой вкус и цвет, а не иметь куцый набор контролов.
...
Рейтинг: 0 / 0
Задачка на профпригодность
    #38496434
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaИ в чем эта ширина заключается?В том что везде рассматривается применение только DataTemplate или UserControl без использования code-behind. Мне захотелось рассмотреть одновременно все имеющиеся возможности и сравнить их.

SeVaЯ увидел только старые подходы, которые построены на специально обученных компонентнах, которые что-то умеют.Полохо смотрел. Например, реализация TabbedMDI . Используются как традиционные возможности вроде code-behind + подписка на события, так и новые возможности вроде ICommand, DataTemplate, Style, Trigger и т. п. Одно другому не мешает.

SeVaТы не понял основную идею wpf - уйти от этого.Не "уйти", а дополнить. Зачем отказываться от традиционных возможностей если они полностью устраивают? Это глупо.

SeVaДвойное связывание, команды,mvvm и прочее позволяют полностью не зависеть от интерфейса, что значительно упрощает разработку фреймворков на любой вкус и цвет, а не иметь куцый набор контролов.Это зависит от решаемой задачи и личных предпочтений. Навязывать окружающим какое-то одно решение неразумно.

Вспомнилось: "Это полный бред(не в обиду). Зачем ты пачкаешь мозги другим?" (ц) :-)
...
Рейтинг: 0 / 0
25 сообщений из 463, страница 13 из 19
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Задачка на профпригодность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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