.NET GUI

.NET Community für WPF, Silverlight und mehr!
Willkommen bei .NET GUI. Anmeldung | Registrieren | Hilfe | Impressum | Forumsregeln
in Suchen

How-To: Parent und Child-Objekte in einer ListView

Letzter Beitrag 07-30-2009 11:36 von Norbert Eder. 0 Antworten.
Seite 1 von 1 (1 Treffer)
Beiträge sortieren: Zurück Weiter
  • 07-30-2009 11:36

    • Norbert Eder
    • Top 10 Mitwirkender
      Männlich
    • Registriert am 04-09-2008
    • Graz / Austria
    • Beiträge 980
    • Punkte 14.949
    • ForumsAdministrator

    How-To: Parent und Child-Objekte in einer ListView

    Oft müssen zu Parent-Objekten auch die Kindelemente angezeigt werden. Nachfolgend findet sich ein Style inkl. Controltemplate, der veranschaulicht, wie für einen Eintrag in einer ListView auch die Kind-Elemente angezeigt werden können. Zum besseren Verständnis: Hier wird mit Company-Objekten gearbeitet, welche eine Auflistung für Aufträge (Oders) enthält.

    <Window.Resources>
        <Style TargetType="{x:Type ListViewItem}" x:Key="CompanyItemStyle">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListViewItem}">
                        <StackPanel>
                            <TextBlock Background="LightBlue" Text="Company"/>
                            <GridViewRowPresenter Content="{TemplateBinding Content}" Columns="{TemplateBinding GridView.ColumnCollection}"/>
                            <StackPanel DataContext="{Binding Orders}" Margin="40 0 0 0">
                                <TextBlock Background="LightYellow" Text="Orders"/>
                                <ListView ItemsSource="{Binding .}">
                                    <ListView.View>
                                        <GridView>
                                            <GridViewColumn Header="Id" DisplayMemberBinding="{Binding Id}"/>
                                            <GridViewColumn Header="InvoiceId" DisplayMemberBinding="{Binding InvoiceId}"/>
                                            <GridViewColumn Header="InvoiceFileName" DisplayMemberBinding="{Binding InvoiceFileName}"/>
                                        </GridView>
                                    </ListView.View>
                                </ListView>
                            </StackPanel>
                        </StackPanel>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    
    <DockPanel>
        <ListView ItemsSource="{Binding Path=.Companies}" ItemContainerStyle="{StaticResource CompanyItemStyle}">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
                    <GridViewColumn Header="Contact" DisplayMemberBinding="{Binding Contact}"/>
                    <GridViewColumn Header="Telephone" DisplayMemberBinding="{Binding Telephone}"/>
                    <GridViewColumn Header="Address" DisplayMemberBinding="{Binding Address}"/>
                </GridView>
            </ListView.View>
        </ListView>
    </DockPanel>

    Das Ergebnis sieht ohne einen guten Designer so aus:

     

     

    • Beitragspunkte: 5
    • IP-Adresse ist Registriert
Seite 1 von 1 (1 Treffer)
Powered by Community Server (Commercial Edition)    69° - Internet-Agentur München (CMS, ASP.NET, Webdesign)