WPF errore: “I prodotti di raccolta deve essere vuoto prima di utilizzare ItemsSource.”

StackOverflow https://stackoverflow.com/questions/1087944

  •  23-08-2019
  •  | 
  •  

Domanda

Qualcuno sa il motivo per cui continuo a ricevere il "insieme di elementi deve essere vuoto prima di utilizzare ItemsSource" -Errore?

Ecco il codice:

        <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>

Questo è quello che faccio nel mio codice sottostante:

 CustomerList.ItemsSource = _mainViewModel.CustomerCollection;

Si noti che CustomerCollection è solo un semplice List<Customers>.

Grazie per il vostro aiuto!

Saluti

È stato utile?

Soluzione

È questo il codice copiato parola per parola? Hai davvero due staffe ad angolo retto (>>) alla fine della linea <ItemsControl...? Se è così, la seconda parentesi angolare destra potrebbe essere sempre trattati come il contenuto del testo, che è sempre aggiunto l'insieme di elementi.

Altri suggerimenti

In primo luogo, rimuovere ItemsSource = "{Binding}" dal tuo ItemsControl. Questo dovrebbe risolvere il tuo errore credo.

In secondo luogo, non sono sicuro se il vostro WrapPanel sta andando a lavorare come previsto in questo caso. Dalla mia comprensione, WrapPanel farà involucro quando ha più figli che si estendono fuori dai limiti. In questo caso, il vostro WrapPanel ha solo 1 bambino, un ItemsControl.

A quanto pare si sta utilizzando il modello MVVM. In questo caso non si deve assegnare esplicitamente una collezione alla proprietà ItemsSource ... invece, si dovrebbe assegnare un ViewModel al DataContext del Window (o UserControl). Se il vostro DataContext è _mainViewModel, il tuo vincolanti dovrebbe essere:

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

Usa DataGrid.Items.Clear(); Spero che sarà utile ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top