У меня есть проект Silverlight. В проекте у меня есть UserControl. IsEnabled для этого UserControl задается динамически, и большую часть времени он имеет значение false.Silverlight Xaml Overriding IsEnabled Свойство управления
В этом UserControl у меня есть несколько вложенных сеток, и все сетки наследуют IsEnable от их родителя (UserControl), как обычно.
Однако для одной из сетей внутри этого UserControl я не хочу наследовать эту функцию. Я хочу всегда устанавливать True. Есть ли способ переопределить функцию IsEnabled?
Что я пробовал, я обертываю ContentControl и устанавливаю IsEnabled в True, но это не сработало.
<ContentControl IsEnabled="True">
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Margin="0,0,0,0" BorderThickness="0">
<HistoryControls:EditableMAMGridContainer StateInfo="{Binding Path=StateInfo, Source={StaticResource Evm}}" />
</ScrollViewer>
</ContentControl>
Корень является UserControl для этого Scrollviewer и имеет несколько родителей и дедушек и бабушек. Это очень глубоко.
EDIT: Этот код работает, но наоборот не работает
<UserControl IsEnabled="True">
.
.
<ContentControl IsEnabled="False">
...
когда UserControl устанавливает значение False, и ContentControl устанавливает True (противоположный случай приведенный выше код), то не работает.
Какова цель этого? Знаете ли вы, что включение родительского контроля блокирует все сообщения для дочерних элементов управления, чтобы они не могли реагировать на какой-либо вход? Возможно, вы можете достичь требуемого состояния? Как создание состояния «заблокировано», когда родительский контроль выглядит как отключенный? – lerthe61
Да, я знаю, во время выполнения, в соответствии с некоторыми условиями, мне нужно отключить. однако для datagrid я хочу, чтобы он включал все время, не зависящее от этого userControl. – Creed