Złe szerokość kolumn w DataGrid

Odpowiedz Nowy wątek
2015-01-05 17:31
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?

edytowany 3x, ostatnio: ly000, 2015-01-05 23:06

Pozostało 580 znaków

2015-01-06 19:05

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


Yubby dibby dibby dibby dibby dibby dibby dum..

Pozostało 580 znaków

2015-01-06 22:05
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.

Pozostało 580 znaków

2015-01-06 22:09
0

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

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

Yubby dibby dibby dibby dibby dibby dibby dum..

Pozostało 580 znaków

2015-01-06 22:32
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.

edytowany 2x, ostatnio: ly000, 2015-01-06 22:39

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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