Wpadłem na dziwny problem ...
Wygląda na to, że zmiana rozmiaru kolumn Grida za pomocą GridSplittera wyłącza (lub w inny sposób dezaktywuje) wyzwalacz zdefiniowany w kolumnie siatki.GridSplitter nadpisuje wyzwalacz stylu ColumnDefinition?
Oto moja konfiguracja:
siatka ma 3 kolumny, zdefiniowane następująco:
<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>
Oczekuje się, że gdy nie ma żadnych przedmiotów, które stanowią ItemsSource do kontroli w trzeciej kolumnie , 0 szerokość zostanie przypisana do drugiej i trzeciej kolumny (obsługujących odpowiednio kontroler GridSplitter i elementy pomocnicze).
Działa to dobrze, o ile nie dotknę Splittera (gdy wszystkie klawisze pomocniczego sterowania są zamknięte, widoczna jest tylko pierwsza kolumna).
Problemy zaczynają się, jeśli przesuję rozdzielacz, w ten sposób skutecznie zmieniając proporcje między kolumnami ## 0 i 2. W takim scenariuszu szerokość kolumn nie jest resetowana, gdy wszystkie elementy w sterowaniu z prawej strony są zamknięte.
Podejrzewam, że ma to coś wspólnego z tym, że GridSplitter "unieważnia" moje definicje w XAML.
Czy ktoś może potwierdzić/obalić tę teorię i zasugerować, jak rozwiązać problem?
Niesamowity rozwiązania. Miałem 2 dni na rozwiązanie podobnej sytuacji i użycie tego rozwiązania zajęło mi godzinę, aby dostosować mój xaml, tylko z Rows. Dziękuję Ci bardzo! – XMight
@Alex Co powiesz na zaakceptowanie tego jako odpowiedzi? – Andre