Ваша Viewmodel содержит состояние любых данных, связанных с пользовательским интерфейсом, которые не дальше в модели.
Один из способов ответить на такие вопросы, как ваш, - рассмотреть, какое поведениехотите в пользовательском интерфейсе и что необходимо привязать к некоторой информации о состоянии.Или, другими словами, в любое время, когда мне хочется написать какой-то код, который приведет к отображению или скрытию элементов пользовательского интерфейса, подумайте о том, как это сопоставить с булевой переменной.пользовательского интерфейса, который виден только тогда, когда у вас загружена модель.Их видимость может быть связана с логическим свойством в Viewmodel IsSolutionLoaded.
Возможно, вы захотите отключить некоторые вещи, если происходит обработка, у вас может быть свойство IsCompiling.Я использовал этот подход со свойством NotRunningthreadedProcessing, как показано ниже, которое позволяет отключать элементы управления, когда в Viewmodel существует объект синхронизации.
CNTL_WhiteLevel.SetBinding(ProgressBar.IsEnabledProperty,
new Binding("NotRunningThreadedProcessing"));
// and the C++/CLI property concerned
property bool NotRunningThreadedProcessing {
bool get()
{
return mThreadedCommandSyncher == nullptr;
}
};