Что я имею в виду: предположим, что на ViewModel есть объекты IsCompliant
и ShowWarning
. Пользовательский интерфейс имеет некоторое сообщение, связанное с ShowWarning, и если ViewModel не соответствует требованиям, наряду с некоторыми другими условиями, мы хотим показать предупреждение. Итак, я кодирование это следующим образом:Есть ли способ зарегистрировать, что одно свойство зависит от другого?
private bool mbIsCompliant;
public bool IsCompliant
{
get { return mbIsCompliant; }
set
{
mbIsCompliant = value;
RaisePropertyChanged (() => IsCompliant);
RaisePropertyChanged (() => ShowWarning);
}
}
public bool ShowWarning
{
get { return !IsCompliant && [other conditions]; }
}
Обратите внимание, что двойной RaisePropertyChanged
вызова в инкубаторе для IsCompliant
, чтобы вызвать обновление для зрения, связанного с ShowWarning
. Но для меня это чувствует, потому что у каждого свойства есть разбрызгивание этих вызовов во всей ViewModel.
Что бы я хотел, это способ иметь таблицу зависимостей, которую я могу зарегистрировать в конструкторе, и MVVMCross отслеживает тот факт, что если свойство А изменилось, тогда свойство B также изменилось и так далее. Таким образом, каждое свойство отслеживает себя, а класс в целом управляет зависимым отношением между свойствами.
Есть ли это? Это разумная идея, или есть лучший способ достичь моей цели?
Ничего себе, это очень много, чтобы ассимилироваться. Я проработаю через эти ссылки и посмотрю, что мне кажется лучше всего. Благодаря! –