Логика взаимодействия окон и контекста MVVM

267
23 марта 2017, 18:14

Допустим у меня есть унифицированное окошко. BasicDialogUI. Там у меня кнопочки и прочие. И есть BasicDialogViewModel, и у него куча детей, разные окна у которых есть одно общее - входе взаимодействия юзера с окном, юзер получает какой либо результат. Теперь необходимо придумать как связать ViewModel и окошко.

Есть идея описать событие в BasicDialogViewModel - GetResult, и в окне BasicDialogUI хранить объект object Result. И там где я вызываю это окошко, обрабатывать это событие, ибо по правилам MVVM, UI не должен быть привязан к контексту - ViewModel.

Интересуют варианты решений, унифицированные.

Answer 1

Попробуйте решить с помощью DependencyProperty своего BasicDialogUI

public int Document_Type_ID
    {
        get
        {
             return (int)GetValue(Document_Type_ID_Property);
        }
        set
        {
            SetValue(Document_Type_ID_Property, value);
        }
    }
public static readonly DependencyProperty Document_Type_ID_Property =
        DependencyProperty.Register("Document_Type_ID", typeof(int), typeof(View.BasicDialogUI), new PropertyMetadata(0));
READ ALSO
Почему MemberInfo.GetCustomAttributes игнорирует наследование

Почему MemberInfo.GetCustomAttributes игнорирует наследование

Метод MemberInfoGetCustomAttributes получает список атрибутов члена типа

255
System.Data.SqlClient.SqlException не обработано

System.Data.SqlClient.SqlException не обработано

Есть программкаПри выполнении записи в базу данных вылетает ошибка:

620
Отследить какая кнопка была нажата, если кнопки создаются программно

Отследить какая кнопка была нажата, если кнопки создаются программно

Здравствуйте, программно создаю на форме кнопки в зависимости от того, сколько записей существует в базе данных по заданному запросуПодскажите,...

391
Как определить на каком индексе (длине) находится символ?

Как определить на каком индексе (длине) находится символ?

Как определить на какой длине находится нужная мне строка от пользователя? Например, чтобы пользователь ввёл My name is AlexКак мне определить...

323