Я столкнулся со странной проблемой ...
Похоже, изменение размера столбцов Grid с помощью 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 и элемент управления вспомогательными элементами, соответственно).
Это работает хорошо, пока я не касаюсь Splitter (когда все вкладки во вспомогательном элементе управления закрыты, остается видимым только первый столбец).
Проблемы начинаются, если я перемещаю разделитель, таким образом эффективно изменяя пропорцию между столбцами ## 0 и 2. В таком сценарии ширина этих столбцов не сбрасывается, когда все элементы в правом элементе управления закрыты.
Я подозреваю, что это как-то связано с тем, что GridSplitter "перекрывает" мои определения в XAML.
Может кто-нибудь подтвердить / опровергнуть эту теорию и предложить, как обойти эту проблему?