[WPF] La operación no es válida cuando ItemsSource está en uso. Use ItemsControl.ItemsSource para acceder y modificar elementos en su lugar

Original: [WPF] La operación no es válida cuando ItemsSource está en uso. Use ItemsControl.ItemsSource para acceder y modificar elementos en su lugar

El problema:

  • La versión china informa un error: Información adicional: La operación no es válida cuando se está utilizando ItemsSource. Utilice ItemsControl.ItemsSource para acceder y modificar elementos en su lugar.
  • 英文版 报错 : La operación no es válida mientras se utiliza ItemsSource. Acceda y modifique elementos con ItemsControl.ItemsSource en su lugar.

Motivo: Un control con múltiples entradas como ListBox en el primer plano XAML, cuyo ItemsSource está vinculado a una colección ObservableCollection <T> en ViewModel, pero cuando se lo llama en el Modelo, intente acceder a este control y modificar su ItemsSource. Tal como la siguiente escritura informará un error:

<ListBox x:Name="designViewLB" ItemsSource="{Binding DesignViewList}">
shellWindow.designViewLB.Items.Add(new DesignViewItem() {
    // ... 设置属性
});

Solución: Debido a que ItemsSource del control en primer plano se ha vinculado a una colección, ya no es posible manipular directamente ItemsSource de este control, sino operar en la colección vinculada a ItemsSource de este control. Se puede escribir de la siguiente manera:

shellViewModel.DesignViewList.Add(new DesignViewItem()
{
    // ... 设置属性
});

Supongo que te gusta

Origin www.cnblogs.com/lonelyxmas/p/12741768.html
Recomendado
Clasificación