Złe szerokość kolumn w DataGrid

0

Witam
Mam mniej więcej coś takiego:

 
<DataGrid Name="Blabla" ItemsSource="{Binding ElementName=Cos, Path=Prop, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
   <DataGrid.Columns>
                    <DataGridTemplateColumn Width="Auto">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                  <Image.../>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                    <DataGridTemplateColumn Width="*">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <TextBox.../>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                    <DataGridTemplateColumn Width="Auto">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock.../>
                            </DataTemplate>
                    	    </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
   </DataGrid.Columns>
</DataGrid>

Na początku, kolekcja, która został zbindowany do itemsource jest pusta, lecz z czasem dodaje do niej elementy. Po dodaniu pierwszego elementu, pojawia się taki problem, że kolumny nie zachowują się tak jak powinny (np. trzecia kolumna, mimo szerokości "Auto" i sporego zapasu miejsca, ucina prawie całą zawartość textblocka, który w niej się znajduję). Jeżeli podczas uruchomienia zmienię wymiary okna, to wszystko zachowuje się tak jak powinno, nawet jeśli potem wrócę do poprzednich wymiarów.
Czyżby to był bug zawarty w WPF? Da się jakoś pozbyć tego efektu?

1

Można zamień kolejność "*" daj na końcu. ;) Albo dodaj taki bajer do kodu jak w tym wątku: http://stackoverflow.com/questions/5549099/datagrid-column-width-doesnt-auto-update
Osobiście bym przemyślał układ kolumn. ;)

0

Na początku musi być "Auto", ze względu na obrazek, który zawsze ma stałe rozmiary. Zmiana układu kolumn również nie wchodzi w grę, bo wtedy całość straci sens.

0

Miałem na myśli taki układ:

<DataGridTemplateColumn Width="Auto"> ... <Image.../> ...
<DataGridTemplateColumn Width="Auto"> ... <TextBox.../> ... 
<DataGridTemplateColumn Width="*"> ... <TextBlock.../> ...
0

Wtedy bym musiał ustawić stały rozmiar dla TextBoxa, przez co ucierpiałaby rozciąganie.

Ok, sposób z linka zadziałał, ale wydaje mi się niezbyt eleganckim rozwiązaniem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1