как отключить весь вид в wpf - PullRequest
0 голосов
/ 26 августа 2010

Я работаю над приложением WPF в шаблоне MVVM.

Мое приложение состоит из 2 модулей. Первый модуль состоит из представления. В нижней строке этого представления я добавляю другой регион, в который другой модуль загружает свой собственный вид.

Проблема: всякий раз, когда пользователь вносит какие-либо изменения в верхнее представление, нижнее представление (загруженное другим модулем) должно отключаться.

Как этого добиться? Есть ли способ отключить весь вид?

Ответы [ 3 ]

2 голосов
/ 27 августа 2010

Пользовательские интерфейсы XAML представляют собой иерархии элементов, и отключение любого элемента путем установки значения false в IsEnabled также отключает все содержащиеся в нем дочерние элементы.Если вам нужно включить такие функции, как полосы прокрутки или всплывающие подсказки, вам понадобятся более детальные настройки IsEnabled.

0 голосов
/ 26 августа 2010

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

Например, если ваше представление находится во 2-м ряду таблицы, вы также можете поместить границу, которая будет занимать всю строку при загрузке, чтобы пользователь не мог ничего сделать, пока он виден. IsWorking ниже будет просто свойством в вашей модели представления, которое вы устанавливаете, когда начинаете загружать данные, или делаете что-то, что не хочет, чтобы пользователь использовал элемент управления.

<Grid>
   <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
   </Grid.RowDefinitions>

   <myviews:View1 Grid.Row="0" />

   <myviews:View2 Grid.Row="1" />
   <Border Background="#30505050" 
           Grid.Row="1"
           Visibility="{Binding Path=IsWorking, Converter={x:Static CommonConverters:BooleanToVisibilityConverter.Default}}"/>
</Grid>

Вы также можете поместить Границу в свой собственный элемент управления или пользовательский элемент управления, если вы хотите сделать с ней больше, например, добавить анимацию, которая будет воспроизводиться во время работы.

0 голосов
/ 26 августа 2010

Достаточно ли "View.IsEnabled = false"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...