問題:
- 中国語版はエラーを報告します:追加情報: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()
{
// ... 设置属性
});