2013-07-18 17 views
5

Wie simuliert man eine Kachelansicht für eine ListView in WPF?Kachelansicht für ListView in WPF

enter image description here

ich das Beispiel here gezeigt versuchte. Aber ich kann nicht zur richtigen Lösung kommen ... Aber ich möchte diese Lösung nicht verwenden, da ich es zu sehr spezifisch bin. Also, wie wird der Weg zu erreichen, dass?

EDIT: ich dies versuche jetzt, und scheint zu funktionieren ...

<ListBox ItemsSource="{Binding Path=ListObservableUsers, ElementName=AdminWindow}"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Vertical"> 
        <Image Source="{Binding Path=Picture}"></Image> 
        <Label Content="{Binding Path=Dni}"></Label> 
       </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 

Wo die ElementName=AdminWindow kommt von <Window .... x:Name="AdminWindow"

Und ich meine eigene ObservableCollection<MyUser>

public class MyUser 
{ 
    public MyUser(int id, string dni, Bitmap picture) 
    { 
     Id = id; 
     Dni = dni; 
     Image img = new Image(); 
     FPhiMultipleSources.FromBitmapImage(img, picture); 
     Picture = img.Source; 
    } 

    public int Id { get; set; } 
    public string Dni { get; set; } 
    public ImageSource Picture { get; set; } 
} 

... 
public UCAdminMain() 
public UCAdminMain() 
{ 
    ListObservableUsers = new ObservableCollection<MyUser>(); 

    InitializeComponent(); 
    uiCurrent = SynchronizationContext.Current; 

    // Create users to add with its image 
    .... 
    ListObservableUsers.Add(...); 
} 

Und jetzt versuche ich, sie in eine Wrap-Panel zu bringen. Im Moment kein Glück ... Irgendwelche Ideen?

+2

Das ist die Verwendung nicht genug ... Wir werden Sie nicht eine komplette Lösung für Ihr Problem geben, die btw wir wissen nicht wirklich. Zeigen Sie uns, was Sie versucht haben, was nicht in einem kleinen kompilierbaren Code-Beispiel funktioniert und wir versuchen Ihnen zu helfen und weisen Sie in die richtige Richtung. – dowhilefor

+0

Die Sache ist, dass ich diesen Code nicht verwenden möchte, weil ich denke, dass es ein bisschen spezifisch ist ... Ich muss die allgemeine Weise wissen, es zu ändern. – Sonhja

+0

Was genau ist spezifisch? Die Schönheit von WPF ist von allen Frameworks, die ich kenne, das ist sehr einfach in der Verwendung und im Aussehen zu ändern. Wie wäre es, wenn du mit diesem Code beginnst, weil du mit ListView und TileView anfangen kannst, deine eigenen Anpassungen vorzunehmen. Zum Beispiel verwenden wir das in unserer Anwendung auch mit tollen Ergebnissen. – dowhilefor

Antwort

0

Link here fuhr mich zur richtigen Lösung.

Einfach!

2

Ein ItemsControl mit einem WrapPanel als ItemsContainer wäre wahrscheinlich eine gute Lösung für das, was Sie versuchen zu tun.

+0

Das hat mein Problem mehr oder weniger gelöst. :) Jetzt werde ich prüfen, wie man das Bild einfügt! – Sonhja

2
<ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 
       <WrapPanel /> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel> 

versuchen, eine WrapPanel