Mi sono imbattuto in uno strano problema ...
Sembra che il ridimensionamento delle colonne di Grid usando un GridSplitter disabilita (o altrimenti disattiva) il trigger definito sulla colonna di una Grid.GridSplitter sovrascrive il trigger di stile di ColumnDefinition?
Ecco la mia messa a punto:
Una Griglia ha 3 colonne, definito come segue:
<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>
L'aspettativa è che quando non ci sono elementi che ItemsSource costituiscono per il controllo nel terzo colonna , 0 larghezza verrà assegnata alla seconda e alla terza colonna (che ospitano rispettivamente il GridSplitter e il controllo delle voci ausiliarie).
Questo funziona bene fino a quando non tocchi lo Splitter (quando tutte le schede del controllo ausiliario sono chiuse, rimane visibile solo la prima colonna).
I problemi iniziano se sposto lo splitter, cambiando così efficacemente la proporzione tra le colonne ## 0 e 2. In tale scenario, la larghezza di queste colonne non viene ripristinata quando tutti gli elementi nel controllo a destra sono chiusi.
Ho il sospetto che questo abbia a che fare con il GridSplitter "superando" le mie definizioni in XAML.
Qualcuno può confermare/confutare questa teoria e suggerire come risolvere il problema?
soluzione stupefacente. Ho faticato 2 giorni per risolvere una cosa simile, e con questa soluzione mi ci è voluta un'ora per adattare il mio xaml, solo con le Rows. Grazie mille! – XMight
@Alex Che ne dici di accettare questo come una risposta? – Andre