WPF ListView an Code binden

maendler53

Grünschnabel
Morgen Leute

Ich stehe auf dem Schlauch!

Beim binden eines ListView bekomme ich folgende Fehlermeldung: "Die Items-Sammlung muss vor dem Verwenden von "ItemsSource" leer sein"

Code:
        <ListView x:Name="LvUses" Margin="10 5" Grid.Row="2" HorizontalContentAlignment="Center">
                <ListView>
                    <ListView.View>
                        <GridView>
                                <GridViewColumn Header="Jahr" Width="150">
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <TextBlock Text="{Binding Year}" TextAlignment="Right" />
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Header="Erdgeschoss" Width="150" DisplayMemberBinding="{Binding Path=Business}"/>
                                <GridViewColumn Header="Wohnungen" Width="150" DisplayMemberBinding="{Binding Path=RentObject}"/>
                                <GridViewColumn Header="Warmwasser" Width="150" DisplayMemberBinding="{Binding Path=HotWater}"/>
                                <GridViewColumn Header="Stall/Tili" Width="150" DisplayMemberBinding="{Binding Path=Barn}"/>
                        </GridView>
                    </ListView.View>
                </ListView>
            </ListView>

Gebunden wird mit folgendem Code:

Code:
List<HeatingUseItem> items = new List<HeatingUseItem>();

        items.Add(new HeatingUseItem() { Year = 2019, Business = 14.50, RentObject = 20.84, HotWater = 28.44, Barn = 0.00 })


            LvUses.ItemsSource = items; // Funzt nich!!!! Fhehlermeldung: "Die Items-Sammlung muss vor dem Verwenden von "ItemsSource" leer sein"



Nun hbe ich im Netz ein Beispiel aufgetan, das folgender Code benutzt:


Code:
List<User> items = new List<User>();


            items.Add(new User() { Name = "John Doe", Age = 42, Mail = "john@doe-family.com" });

            items.Add(new User() { Name = "Jane Doe", Age = 39, Mail = "jane@doe-family.com" });

            items.Add(new User() { Name = "Sammy Doe", Age = 7, Mail = "sammy.doe@gmail.com" });


            lvUsers.ItemsSource = items; // Läuft Tadellos!!!


Wo liegt der Unterschied ?

Freundliche Grüsse Alex
 
Lösung
Du hast eine ListView in einer ListView, nimm die innere ListView raus.

sprich, nicht:
Code:
        <ListView x:Name="LvUses" Margin="10 5" Grid.Row="2" HorizontalContentAlignment="Center">
                <ListView>
                    <ListView.View>

sondern
Code:
        <ListView x:Name="LvUses" Margin="10 5" Grid.Row="2" HorizontalContentAlignment="Center">
              <ListView.View>
Du hast eine ListView in einer ListView, nimm die innere ListView raus.

sprich, nicht:
Code:
        <ListView x:Name="LvUses" Margin="10 5" Grid.Row="2" HorizontalContentAlignment="Center">
                <ListView>
                    <ListView.View>

sondern
Code:
        <ListView x:Name="LvUses" Margin="10 5" Grid.Row="2" HorizontalContentAlignment="Center">
              <ListView.View>
 
Lösung
Zurück