Я столкнулся со странной проблемой...
Похоже, что изменение размера столбцов сетки с помощью GridSplitter отключает (или иным образом деактивирует) триггер, определенный для столбца сетки.
Вот моя установка:
Grid имеет 3 колонки, определенные следующим образом:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition>
<ColumnDefinition.Style>
<Style>
<Setter Property="ColumnDefinition.Width" Value="Auto"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=OpenItemViewModels.Count}" Value="0">
<Setter Property="ColumnDefinition.Width" Value="0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ColumnDefinition.Style>
</ColumnDefinition>
<ColumnDefinition>
<ColumnDefinition.Style>
<Style>
<Setter Property="ColumnDefinition.Width" Value="4*"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=OpenItemViewModels.Count}" Value="0">
<Setter Property="ColumnDefinition.Width" Value="0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ColumnDefinition.Style>
</ColumnDefinition>
</Grid.ColumnDefinitions>
Ожидается, что когда нет элементов, которые являются ItemsSource для элемента управления в третьей колонке, второй и третьей колонкам (в которых размещены GridSplitter и элемент управления вспомогательными элементами, соответственно) будет присвоена ширина 0.
Это работает хорошо до тех пор, пока я не трогаю сплиттер (когда все вкладки вспомогательного элемента управления закрыты, видимым остается только первый столбец).
Проблемы начинаются, если я перемещаю сплиттер, тем самым эффективно изменяя пропорцию между столбцами ##0 и 2. В таком сценарии ширина этих столбцов не сбрасывается, когда все элементы правого элемента управления закрыты.
Я подозреваю, что это как-то связано с тем, что GridSplitter "отменяет" мои определения в XAML.
Может ли кто-нибудь подтвердить/опровергнуть эту теорию и предложить, как обойти проблему?