Question

Quelqu'un sait pourquoi je continue à recevoir la « collection Items doit être vide avant d'utiliser ItemsSource » -erreur?

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

est ce que je fais dans mon code-behind:

 CustomerList.ItemsSource = _mainViewModel.CustomerCollection;

Notez que CustomerCollection est un simple List<Customers>.

Merci pour votre aide!

Vive

Était-ce utile?

La solution

Est-ce code Copié mot pour mot? Avez-vous vraiment deux équerres droite (>>) à la fin de la ligne de <ItemsControl...? Si oui, la deuxième tranche d'angle droit peut être traité comme obtenir le contenu du texte, qui s'ajouté à la collection Items.

Autres conseils

D'abord, enlever ItemsSource = "{} Reliure" de votre ItemsControl. Cela devrait corriger votre erreur je crois.

En second lieu, je ne suis pas sûr si votre WrapPanel va fonctionner comme prévu dans ce cas. De ma compréhension, WrapPanel fera emballage quand il a plusieurs enfants qui se prolongent hors des limites. Dans ce cas, votre WrapPanel a seulement 1 enfant, un ItemsControl.

Il semble que vous utilisez le modèle MVVM. Dans ce cas, vous ne devriez pas attribuer explicitement une collection à la propriété ItemsSource ... à la place, vous devez attribuer un ViewModel au DataContext du Window (ou UserControl). Si votre DataContext est _mainViewModel, votre force exécutoire doit être:

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

Utilisez DataGrid.Items.Clear(); J'espère que ce sera utile ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top