Frage

Wer weiß, warum ich immer halten die „Items Sammlung muss leer sein Itemssource vor dem Gebrauch“ -Fehler?

Hier ist der Code:

        <ScrollViewer Margin="8,8,8,8" Grid.Row="3" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">                  
                <WrapPanel Orientation="Vertical">
                    <ItemsControl ItemsSource="{Binding}" x:Name="CustomerList" >>
                        <ItemsControl.ItemsPanel>
                            <ItemsPanelTemplate>
                                <WrapPanel Orientation="Horizontal">
                                </WrapPanel>
                            </ItemsPanelTemplate>
                        </ItemsControl.ItemsPanel>
                        <ItemsControl.ItemTemplate>
                            <DataTemplate>
                                <View:UserControlCustomerDetails>
                                </View:UserControlCustomerDetails>
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>
                    </ItemsControl>
                </WrapPanel>
            </ScrollViewer>

Das ist, was ich tue in meinem Code-Behind:

 CustomerList.ItemsSource = _mainViewModel.CustomerCollection;

Beachten Sie, dass CustomerCollection ist nur eine einfache List<Customers>.

Vielen Dank für Ihre Hilfe!

Prost

War es hilfreich?

Lösung

Ist dieser Code wörtlich kopiert? Haben Sie wirklich zwei rechte Winkel Klammern (>>) am Ende der <ItemsControl... Linie? Wenn ja, könnte die zweite spitze Klammer als Textinhalt behandelt wird immer, die die Items-Auflistung hinzugefügt wird, zu werden.

Andere Tipps

Zuerst entfernen Itemssource = "{Binding}" aus dem Itemscontrol. Dies sollte Ihre Fehler beheben ich glaube.

Zweitens, ich bin nicht sicher, ob Ihr WrapPanel in diesem Fall wie erwartet funktionieren wird. Von meinem Verständnis wird WrapPanel Verpackung tun, wenn es mehrere Kinder hat, die außerhalb der Grenzen erweitern. In diesem Fall Ihre WrapPanel haben nur 1 Kind, ein Itemscontrol.

Anscheinend verwenden Sie das MVVM-Muster. In diesem Fall sollten Sie nicht explizit eine Sammlung an die ItemsSource Eigenschaft zuweisen ... stattdessen sollten Sie eine Ansichtsmodell zum DataContext des Window (oder UserControl) zuweisen. Wenn Ihr DataContext _mainViewModel ist, Ihre Bindung sein sollte:

<ItemsControl ItemsSource="{Binding CustomerCollection}" ...

Verwenden DataGrid.Items.Clear(); Ich hoffe, es wird hilfreich sein ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top