В моем пользовательском интерфейсе Silverlight есть довольно распространенная ситуация, когда видимость различных элементов привязана к какому-либо свойству ViewModel.Например, у меня может быть такой элемент управления:
<myapp:WarningView Visibility="{Binding IsInWarningState}" />
Если состояние предупреждения истинно, мы хотим показать элемент управления, если нет, то нет.Проблема в том, что у меня много ситуаций, когда страница отображает и отображает все содержимое, включая элемент управления WarningView, а затем секунду спустя скрывает представление, которое выглядит действительно неуклюжим.
Я думаю, что происходит то, что View загружается и выполняет асинхронный вызов на сервер для получения данных, но пока этого не произойдет, DataContext и, следовательно, ничего не будет привязано к WarningView и использует значения по умолчанию,и по умолчанию показывается элемент управления.
Представляется, что для представления лучше всего создавать свою собственную модель представления, или, по крайней мере, это то, что я делаю сейчас.А поскольку вызов асинхронный, всегда может быть некоторый интервал, когда вы хотите что-то показать, но у вас пока нет реальных данных для показа.Я мог бы вообразить создание фиктивной ViewModel с лучшими значениями по умолчанию, но это похоже на большую работу для всего проекта.
Так, как лучше обойти эту проблему?