powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Закрыть окно из MVVM
43 сообщений из 43, показаны все 2 страниц
Закрыть окно из MVVM
    #37303783
Фотография aleks-sam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну че я могу сказать...
Ребята, дайте нормальное, рабочее решение закрытия диалога из viewModel. Бл$ кто во что горазд, хер поймешь как лучше. мвивиэм гребаный.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37303853
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отказаться от фанатизма. Использовать ссылку из VM на V.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37303869
Фотография aleks-sam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КОтказаться от фанатизма. Использовать ссылку из VM на V.
Да я не фанат, решили проектик небольшой на mvvm написать, вот и ах?еваю от всяких фишек.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37303880
Фотография aleks-sam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Качественный говнокодец у меня получился.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37304107
Руки-крюки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks-sam,

Я обычно диалоговые окна делаю юзер контролами и кидаю их ViewModel в ContentPresenter. Для закрытия окна просто обнуляю ViewModel.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37305256
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КОтказаться от фанатизма. Использовать ссылку из VM на V.
+1
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37307125
Фотография aleks-sam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КОтказаться от фанатизма. Использовать ссылку из VM на V.
+1
Так и сделал.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37307126
Фотография aleks-sam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руки-крюкиaleks-sam,

Я обычно диалоговые окна делаю юзер контролами и кидаю их ViewModel в ContentPresenter. Для закрытия окна просто обнуляю ViewModel.
Я тут с кодэпрожекта примеры посмотрел. Вот там то народ фанатеет...
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37308375
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37308424
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ 9915896 9917000

Муся, спасибо за ссылки, с удовольствием просмотрел эту лабуду ;-)
Я давно говорил, что тебе как такжику построчно платят.
В чем сакральный смысл отдельного OkFired, если он больше нигде не используется?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
/// <summary>
        /// Метод нажатия кнопки "OK"
        /// </summary>
        private void OkFired()
        {
            if (Model != null)
            {
                Result = Model.SelectedItem.Clone<CategoryEx>();
                DialogResult = true;
                this.DialogResult = true;
            }
        }

        /// <summary>
        /// Событие при нажатии кнопки "OK"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            OkFired();
        }
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37308429
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лабуда, Севушка, у тебя в голове, - тебе об этом, наверное, уже пол-форума объясняло.
Твоему разуму будет легче, если реализация метода OkFired ляжет в автогенеренный обработчик? Ну так сделай это и утешь себя тем, что ты написал неимоверно качественный код.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37308445
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЛабуда, Севушка, у тебя в голове, - тебе об этом, наверное, уже пол-форума объясняло.
Твоему разуму будет легче, если реализация метода OkFired ляжет в автогенеренный обработчик? Ну так сделай это и утешь себя тем, что ты написал неимоверно качественный код.
Мусафаил, ты думаешь, если лапшекод разложишь по отдельным кучкам, его станет меньше?
Ты, видно, эстет и любитель красивой сервировки ;-)

ЗЫ а за обработчики я сразу линейкой по рукам бью
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37308457
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫЫ Муся, а за CategoryPikerModel завтра с родителями в школу и два в четверти, однозначно!
Как это я такие пенки пропустил!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Закрыть окно из MVVM
    #37917259
.Anatoly.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks-sam, мне кажется хороший пример можно найти здесь .
Что касается прямой ссылки из VM на View, то мне кажется одна из идей паттерна в том, чтобы избавиться от таких перекрестных ссылок.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37917956
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Anatoly.Что касается прямой ссылки из VM на View, то мне кажется одна из идей паттерна в том, чтобы избавиться от таких перекрестных ссылок.Ещё раз, фанатизм - это плохо. Сегодня нужно окно закрыть, завтра - управлять клавиатурным фокусом, послезавтра ещё чего-нибудь... На каждый чих будешь присоединяемое событие лепить?
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37918119
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

Полностью поддерживаю.
Я уже создавал недавно немало постов, с окторыми придется столкнуться если слепо придерживаться MVVM.
Поэтому MVVM надо придерживаться в рамках разумного - не усложняя себе жизнь
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37942608
Фотография aleks-sam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Anatoly.aleks-sam, мне кажется хороший пример можно найти здесь .
Что касается прямой ссылки из VM на View, то мне кажется одна из идей паттерна в том, чтобы избавиться от таких перекрестных ссылок.
Спасибо конечно, но уже как год прошел
Решение было найдено, а как я уже не помню.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970411
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrusАлексей К,

Полностью поддерживаю.
Я уже создавал недавно немало постов, с окторыми придется столкнуться если слепо придерживаться MVVM.
Поэтому MVVM надо придерживаться в рамках разумного - не усложняя себе жизнь

Рамки разумного - пояснит, плиз.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970422
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Абсолют,

Согласен с Алексей К.
Почти все мои последние посты, которые я писал связаны с ограничением MVVM
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970545
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrusАбсолют,

Согласен с Алексей К.
Почти все мои последние посты, которые я писал связаны с ограничением MVVM

Вы его готовить не умеете
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970643
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Я готов принять твои слова после того как ты дашь вразумительные ответы на мои вопросы связанные с MVVM. Ты видел эти ветки -и на некоторых ты пытался что-то сказать. Но после пару сообщений ничего толкового и вразумительного предложить не мог.
Так что мне твои претензии не совсем понятны.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970650
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Предыдущее сообщения я написал не для того чтобы сказать что я круто знаю MVVM.
Но те проблем которые я описывал - хороший пример ограничений MVVM. При этом я описывал возможные варианты их обхождения. Вопрос в том - стоит ли это выделенного яйца?!))
И я нигде не нашел вразумительного ответа (я не только про этот форум)
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970662
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrusSeVa,

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

Это там, где ты команду в template задать не мог? В этом случае MVVM не причем, изучай матчасть.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970669
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

При чем тут матчасть? Я там четко все описал. Дай адекватный ответ в рамках MVVM?
Из последних мне особенно в голову отложилось передача EventArgs.
И еще какие-то.
Сева, давай так - ветки открыты. Если я не прав - в рамках MVVM напиши в соответсвующей ветке. А от голословия не прибавить не убавить
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970673
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Вот решил освежить память и кинуть ветки на сооветствующие обсуждения:

/topic/954083&hl=

/topic/954994&hl=

/topic/956591&hl=
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970674
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrusSeVa,

При чем тут матчасть? Я там четко все описал. Дай адекватный ответ в рамках MVVM?
Из последних мне особенно в голову отложилось передача EventArgs.
И еще какие-то.
Сева, давай так - ветки открыты. Если я не прав - в рамках MVVM напиши в соответсвующей ветке. А от голословия не прибавить не убавить

Да, при том, что на все твои вопросы, ответы ищутся в течение пяти минут, но при одном условии, если есть знание матчасти.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970675
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Все ответы я находил и показывал на форуме. И писал почему они нарушают MVVM,
Ну давай по EventArgs и DragandDrop предложи более гибкий вариант и который идеально подходил бы под MVVM (и чтобы они были лучше чем те которые я находил). Покажи что я не могу ползоваться поиском
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970695
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrusSeVa,

Все ответы я находил и показывал на форуме. И писал почему они нарушают MVVM,
Ну давай по EventArgs и DragandDrop предложи более гибкий вариант и который идеально подходил бы под MVVM (и чтобы они были лучше чем те которые я находил). Покажи что я не могу ползоваться поиском

Мы ходим по кругу. Что можно находить не понимая основ?
Привязку команду в шаблоне даже обсуждать нечего.
Для d&d полно разных вариантов DragSource & DragTarget, остается только связать команды и нужные события начала и окончания перетаскивания. Это делается элементарно с помощью тоже большого кол-ва различных реализаций EventToCommand.
Все это не стоит выеденного яйца
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970864
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Может дашь ссылки вместо того чтобы словами раскидываться? Если их полно и есть прекрасные решения - дай в соответствующей ветке ссылки, которые бы отличались от тех, которые я давал. Пока кроме набора слов я ничего больше от тебя не услышал
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37970868
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Тем более ты во всех приведенных мною ссылках участвовал, и если бы ты тогда дал бы вразумительный ответ то я бы тебе и слова бы не сказал.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37972171
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrusSeVa,

Тем более ты во всех приведенных мною ссылках участвовал, и если бы ты тогда дал бы вразумительный ответ то я бы тебе и слова бы не сказал.

Перечитал топик по командам, я давал тебе три ссылки, где подробно разжевано, что нужно делать. Подозреваю, что они были бесполезны без знания основ.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37996643
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я б сделал интерфейс c событием реквеста закрытия окна. нужная вьюмодель реализовывает этот интерфейсик.

У вьюхи на датаконтекстчейнджед кастил новое значение датаконтекста к этому интерфейсу и если все гуд подписывался на реквест закрытия, по которому обычный this.Close();


как вам такой вариант?
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37997375
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос от мимо проходившего, ничего не понимающего в дотнете но жутко интересующегося и активно применяющего MVVM.

Вот тут два гражданина в этом треде утверждают, что при использовании MVVM и XML подобной вьюхи не всё всегда гладко, по причине того что XML это конечно же хорошо, язык декларативный с высокой выразительностью, но не всегда в XML удобно или возможно описать какие-то нестандартные вещи и хочешь не хочешь но раз к примеру в месяц нужно писать код зависимый от вью. Теперь получается следующие, если во вью модель заинжектить вью то у особо впечатлительных начинает рваться шаблон, так как если следовать букве закона то во вью модели должна находиться логика представления и не должно быть кода зависимого от используемой библиотеки вью. То есть вроде бы как бы неплохо иногда иметь вью не только в XML но и коде, теперь вопрос, даже два считаете ли вы структуру кода(точнее структуру файлов) ниже нормальной и второй можно ли её реализовать в дотнете?
Код: sql
1.
2.
3.
4.
5.
View.xml файлик с шаблоном вьюхи

View.cs // сюда выносим часть гуи которую либо неудобно, либо нельзя реализовать средствами XML, каким нибудь способом имеем в этом классе ссылку на ViewModel

ViewModel.cs // вьюмодель попрежнему ничего не знающая ни о каком вью
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37997378
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimba,

извини, но бред.

представление никак не должно знать о моделе.

вообще в иделае на каждую вьюмодель должен быть дататемплит с нужной вью.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37997383
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Esofter,
Я ни говорил ничего о том что вью занет что-то о моделе, я говорил о вью модели, ну да ладно не важно, тут больше вопрос о том куда девать императивный код на ЯП который в XML не влазиет. Если как бы вью ничего не должна знать о вьюмоделе, то получается что вторая и подавно под страхом смертной казни ничего не должна знать о вью. Подправил структуру под Ваши требования:
Код: sql
1.
2.
3.
4.
5.
View.xml файлик с шаблоном вьюхи

View.cs // сюда выносим часть гуи которую либо неудобно, либо нельзя реализовать средствами XML, каким нибудь способом имеем в этом классе имеем ссылку на дататемплэйт.

ViewModel.cs // вьюмодель попрежнему ничего не знающая ни о каком вью
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37997449
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimbaEsofter,
Я ни говорил ничего о том что вью занет что-то о моделе, я говорил о вью модели, ну да ладно не важно, тут больше вопрос о том куда девать императивный код на ЯП который в XML не влазиет. Если как бы вью ничего не должна знать о вьюмоделе, то получается что вторая и подавно под страхом смертной казни ничего не должна знать о вью. Подправил структуру под Ваши требования:
Код: sql
1.
2.
3.
4.
5.
View.xml файлик с шаблоном вьюхи

View.cs // сюда выносим часть гуи которую либо неудобно, либо нельзя реализовать средствами XML, каким нибудь способом имеем в этом классе имеем ссылку на дататемплэйт.

ViewModel.cs // вьюмодель попрежнему ничего не знающая ни о каком вью



View.cs - часть view. Именно здесь раздолье для говнокодеров в виде MCУ
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37997466
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVavimbaEsofter,
Я ни говорил ничего о том что вью занет что-то о моделе, я говорил о вью модели, ну да ладно не важно, тут больше вопрос о том куда девать императивный код на ЯП который в XML не влазиет. Если как бы вью ничего не должна знать о вьюмоделе, то получается что вторая и подавно под страхом смертной казни ничего не должна знать о вью. Подправил структуру под Ваши требования:
Код: sql
1.
2.
3.
4.
5.
View.xml файлик с шаблоном вьюхи

View.cs // сюда выносим часть гуи которую либо неудобно, либо нельзя реализовать средствами XML, каким нибудь способом имеем в этом классе имеем ссылку на дататемплэйт.

ViewModel.cs // вьюмодель попрежнему ничего не знающая ни о каком вью



View.cs - часть view. Именно здесь раздолье для говнокодеров в виде MCУ
OK. А какие есть логически обоснованные аргументы, кроме праведной ненавести к МСУ. Вот есть код который не может быть воспроизведён средствами XML, его хочешь не хочешь где-то придётся написать, в чём преимущество помещение такого кода во вьюмодель? Я пока кроме того что будет на один класс меньше других преимуществ не вижу, с другой стороны и недостоток только один, нарушение шаблона, но вроде как это и не сильный и недостаток, шаблоны описывают стандартные ситуации, если ситуация выходит за рамки стандартной, то в принципе почему бы шаблон и не нарушить.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37997490
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimbaSeVaпропущено...


View.cs - часть view. Именно здесь раздолье для говнокодеров в виде MCУ
OK. А какие есть логически обоснованные аргументы, кроме праведной ненавести к МСУ. Вот есть код который не может быть воспроизведён средствами XML, его хочешь не хочешь где-то придётся написать, в чём преимущество помещение такого кода во вьюмодель? Я пока кроме того что будет на один класс меньше других преимуществ не вижу, с другой стороны и недостоток только один, нарушение шаблона, но вроде как это и не сильный и недостаток, шаблоны описывают стандартные ситуации, если ситуация выходит за рамки стандартной, то в принципе почему бы шаблон и не нарушить.

Преимущество очевидное и лежит на поверхности - соблюдение основного принципа ООП с единичной ответственностью.
Без него, как правило, результат один.
Все "аргументы", которые здесь приводились спокойно решаются без нарушения шаблона, было бы желание, знания возможностей архитектуры и нормальный фреймворк вместо собственных придумок
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37997500
vimba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaПреимущество очевидное и лежит на поверхности - соблюдение основного принципа ООП с единичной ответственностью.
Без него, как правило, результат один.

Из этого следует что Вы против размещения кода завязанного на ГУИ во вью модели?

SeVaВсе "аргументы", которые здесь приводились спокойно решаются без нарушения шаблона, было бы желание, знания возможностей архитектуры и нормальный фреймворк вместо собственных придумок

То есть ВЫ утверждаете что не бывает ситуаций когда XML недостоточно?
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37997544
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vimbaSeVaПреимущество очевидное и лежит на поверхности - соблюдение основного принципа ООП с единичной ответственностью.
Без него, как правило, результат один.

Из этого следует что Вы против размещения кода завязанного на ГУИ во вью модели?

SeVaВсе "аргументы", которые здесь приводились спокойно решаются без нарушения шаблона, было бы желание, знания возможностей архитектуры и нормальный фреймворк вместо собственных придумок

То есть ВЫ утверждаете что не бывает ситуаций когда XML недостоточно?

В последнем проекте кода во вью не было, как в прочем, он практически отсутствовал и во viewmodel, тк была предусмотрена интеграция с БД.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #37997905
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Некоторым невдомёк, что сишарпная часть UserControl/Window/Page тоже вполне себе вьюмодель, со своими преимуществами и недостатками.
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #38001534
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНекоторым невдомёк, что сишарпная часть UserControl/Window/Page тоже вполне себе вьюмодель, со своими преимуществами и недостатками.
«сишарпная часть» называется «код бехайндом» ;)
...
Рейтинг: 0 / 0
Закрыть окно из MVVM
    #38001622
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНекоторым невдомёк, что сишарпная часть UserControl/Window/Page тоже вполне себе вьюмодель, со своими преимуществами и недостатками.
«сишарпная часть» называется «код бехайндом» ;)Ага, всё забываю про это. :-)
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Закрыть окно из MVVM
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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