[WPF] ItemsSourceが使用中の場合、操作は無効です。代わりに、ItemsControl.ItemsSourceを使用して要素にアクセスして変更します

オリジナル: [WPF] ItemsSourceが使用中の場合、操作は無効です。代わりに、ItemsControl.ItemsSourceを使用して要素にアクセスして変更します

問題:

  • 中国語版はエラーを報告します:追加情報:ItemsSourceが使用されている場合、操作は無効です。代わりに、ItemsControl.ItemsSourceを使用して要素にアクセスして変更します。
  • 英文版报错:ItemsSourceの使用中は操作できません。代わりに、ItemsControl.ItemsSourceを使用して要素にアクセスして変更します。

理由:フォアグラウンドXAMLのListBoxなどの複数のエントリを持つコントロール。ItemsSourceがViewModelのObservableCollection <T>コレクションにバインドされていますが、モデルで呼び出されたときに、このコントロールにアクセスしてそのItemsSourceを変更してください。次のような書き込みはエラーを報告します:

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

解決策:フォアグラウンドコントロールのItemsSourceがコレクションにバインドされているため、このコントロールのItemsSourceを直接操作することはできなくなり、代わりにこのコントロールのItemsSourceにバインドされたコレクションを操作できます。それは次のように書くことができます:

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

おすすめ

転載: www.cnblogs.com/lonelyxmas/p/12741768.html