Laden...

[WPF]Probleme mit eigener Ansicht über ViewBase

Erstellt von eclere vor 17 Jahren Letzter Beitrag vor 17 Jahren 3.226 Views
E
eclere Themenstarter:in
95 Beiträge seit 2006
vor 17 Jahren
[WPF]Probleme mit eigener Ansicht über ViewBase

Hallo,

ich möchte gerne eine Listview mit der s.g. TileView Ansicht haben. Mit folgendem Template habe ich das auch schon einmal hinbekommen:

<Border Name="bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
                  Background="{TemplateBinding Background}" Margin="{TemplateBinding Margin}">
            <ScrollViewer Margin="{TemplateBinding Padding}">
              <WrapPanel ItemWidth="190" IsItemsHost="True" ItemHeight="270"
                         Width="{Binding ActualWidth,RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}">
              </WrapPanel>
            </ScrollViewer>
          </Border>

Leider habe ich dann keine Vitualisierung. Ersetze ich den entsprechenden Teil durch:

<Border Background="{TemplateBinding Background}">
            <ScrollViewer Margin="{TemplateBinding Padding}">
              <VirtualizingStackPanel IsItemsHost="True" />
            </ScrollViewer>
          </Border>

...habe ich meine Virtualisierung, aber jedes ListviewItem wird wieder untereinander dargestellt.

Hat jemand einen Tipp wie ich beides haben kann?

Gruß Thorsten

6.862 Beiträge seit 2003
vor 17 Jahren

Du kannst die Elemente doch beliebig schachteln, an sich müssts doch einfach gehen wenn du dein Wrappannel als Child in dein VirtualizingStackPanel einfügst.

Baka wa shinanakya naoranai.

Mein XING Profil.

E
eclere Themenstarter:in
95 Beiträge seit 2006
vor 17 Jahren

Hallo talla,

das dachte ich auch und habe folgende Möglichkeiten probiert:

<Border Background="{TemplateBinding Background}">
            <ScrollViewer Margin="{TemplateBinding Padding}">
              <VirtualizingStackPanel IsItemsHost="True">
                <WrapPanel ItemWidth="150" ItemHeight="150"/>
              </VirtualizingStackPanel>
            </ScrollViewer>
          </Border>

führt zu einem Fehler (logischerweise)

<Border Background="{TemplateBinding Background}">
            <ScrollViewer Margin="{TemplateBinding Padding}">
              <VirtualizingStackPanel >
                <WrapPanel ItemWidth="150" ItemHeight="150" IsItemsHost="True"/>
              </VirtualizingStackPanel>
            </ScrollViewer>
          </Border>

Hier bekomme ich keine Anzeige. Da ich jedoch über die Console sehen kann dass alle elemente der Liste geladen wurden, habe ich das nicht weiter verfolgt, da die Virtualisierung unbedingt benötigt wird.

Hast Du es vielleicht anders gemeint?

Gruß Thorsten

6.862 Beiträge seit 2003
vor 17 Jahren

Ich kanns momentan net probieren, aber die zweite Variante schaut an sich gut aus. Hast du vielleicht irgend nen Template oder Style drin das net passt und deshalb die Daten net angezeigt werden?

Baka wa shinanakya naoranai.

Mein XING Profil.

E
eclere Themenstarter:in
95 Beiträge seit 2006
vor 17 Jahren

Hallo,

ja ein Style für die Items ist definiert. Ich geha davon aud dass dieses der Grund für die fehlerhafte Darstellung ist. Aber wie gesagt, ist das auch egal, da das Ergebnis das gleiche ist wenn ich den VirtualizingStackPanel weg lasse.

Gruß Thorsten