Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wieso kann Grid nicht als ItemsPanel verwendet werden?
wackelkontakt
myCSharp.de - Member

Avatar #avatar-3290.jpg


Dabei seit:
Beiträge: 109
Herkunft: Dresden

Themenstarter:

Wieso kann Grid nicht als ItemsPanel verwendet werden?

beantworten | zitieren | melden

Hallo,

ich würde gern ein Grid als ItemsPanel verwenden. Jedoch geht das schief. Hier ein beispielhafter Aufbau (Das Beispiel macht vielleicht nicht viel Sinn aber ich wollte die Sache einnfach halten. ):
<ListView 
                ItemsSource ="{Binding Path=Cells}" >
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Button Content="{Binding Cell.VisuName}" 
                                Grid.Column="{Binding Cell.PositionX}"
                                Grid.Row="{Binding Cell.PositionY}"/>
                    </DataTemplate>
                </ListView.ItemTemplate>
                <ListView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition/>
                                <RowDefinition/>
                                <RowDefinition/>
                                <RowDefinition/>
                                <RowDefinition/>
                            </Grid.RowDefinitions>
                        </Grid>
                    </ItemsPanelTemplate>
                </ListView.ItemsPanel>
            </ListView>

Es werden nun aber keine Columns und Rows angelegt, sondern die Items werden in einem 1x1-Grid übereinander gestapelt. Verwende ich ein UniformGrid (natürlich ohne Zuweisung der Position) funktioniert alles wie es soll.

Kann mir jemand erklären warum das mit einem Grid schief geht?
Um Rekursion zu verstehen, muss man erst mal Rekursion verstehen, muss man erst mal Rekursion verstehen, ....
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 5.742
Herkunft: Stuttgart

beantworten | zitieren | melden

Hallo wackelkontakt,

versuche mal den ItemsContainerStyle, um die Position der Elemente zu setzen.
private Nachricht | Beiträge des Benutzers
wackelkontakt
myCSharp.de - Member

Avatar #avatar-3290.jpg


Dabei seit:
Beiträge: 109
Herkunft: Dresden

Themenstarter:

beantworten | zitieren | melden

Hallo winSharp,

super Sache, funktioniert so wie es soll

Danke!


Mal so nebenbei: Dieser Blogeintrag: A simpler (and dynamic) Grid control for WPF und der Tip mit dem ItemContainerStyle sind die Lösung für ein früheres Thema Positionierung von Elementen innerhalb von UniformGrid -> wie? bei dem du mir schon mal helfen wolltest, ich aber aufgrund von Zeit- und Wissensproblemen aber erst mal zur Seite geschoben habe. Da aber das Sortieren der Liste (als Übergangslösung) extrem lange dauert, bin ich das Thema noch mal angegangen. Mit der jetzigen Lösung bin ich erst mal ganz zufrieden, bin mal auf die Performance gespannt.
Um Rekursion zu verstehen, muss man erst mal Rekursion verstehen, muss man erst mal Rekursion verstehen, ....
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 5.742
Herkunft: Stuttgart

beantworten | zitieren | melden

Zitat von wackelkontakt
sind die Lösung für ein früheres Thema Positionierung von Elementen innerhalb von UniformGrid -> wie? bei dem du mir schon mal helfen wolltest
Siehe auch die Ergänzung in dem entsprechenden Thread.
private Nachricht | Beiträge des Benutzers