WPF error: “colección de elementos debe estar vacío antes de usar ItemsSource.”

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

  •  23-08-2019
  •  | 
  •  

Pregunta

¿Alguien sabe por qué sigo recibiendo la "colección de elementos debe estar vacío antes de usar ItemsSource" -Error?

Este es el código:

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

Esto es lo que hago en mi código subyacente:

 CustomerList.ItemsSource = _mainViewModel.CustomerCollection;

Tenga en cuenta que es sólo un CustomerCollection List<Customers sencilla>.

Gracias por su ayuda!

Saludos

¿Fue útil?

Solución

es el código copiado palabra por palabra? ¿Realmente tiene dos soportes en ángulo recto (>>) al final de la línea <ItemsControl...? Si es así, el segundo símbolo mayor que podría estar recibiendo tratado como el contenido del texto, que se van añadiendo a la colección de artículos.

Otros consejos

En primer lugar, retire ItemsSource = "{Binding}" de su ItemsControl. Esto debería solucionar el error creo.

En segundo lugar, no estoy seguro de si su WrapPanel va a funcionar como se espera en este caso. Desde mi entender, WrapPanel hará envoltura cuando se tiene varios hijos que se extienden fuera de los límites. En este caso, su WrapPanel solamente tiene 1 hijo, ItemsControl.

Al parecer está utilizando el patrón MVVM. En ese caso, no se debe asignar explícitamente una colección a la propiedad ... ItemsSource lugar, debe asignar un modelo de vista a la DataContext del Window (o UserControl). Si se DataContext su _mainViewModel, su vinculante debe ser:

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

Uso DataGrid.Items.Clear(); Yo espero que sea útil ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top