Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在WPF中对一个数据源使用多个组合框?_C#_Wpf_Data Binding_Combobox - Fatal编程技术网

C# 如何在WPF中对一个数据源使用多个组合框?

C# 如何在WPF中对一个数据源使用多个组合框?,c#,wpf,data-binding,combobox,C#,Wpf,Data Binding,Combobox,当我尝试对多个组合框使用同一列表时,选择将与所有组合框共享 我希望组合框将数据源视为自己的,并且不应共享选择 <ComboBox ItemsSource="{Binding ActiveLanguages}" DisplayMemberPath="Name" /> ActiveLanguages是一个ObservableCollection,是应用程序的单个实例对象 此组合框位于模板上,选择会在模板的所有实例上重复。将IsSynchronizedWithCurrentItem属

当我尝试对多个组合框使用同一列表时,选择将与所有组合框共享

我希望组合框将数据源视为自己的,并且不应共享选择

<ComboBox ItemsSource="{Binding ActiveLanguages}" DisplayMemberPath="Name" />

ActiveLanguages是一个ObservableCollection,是应用程序的单个实例对象


此组合框位于模板上,选择会在模板的所有实例上重复。

IsSynchronizedWithCurrentItem
属性设置为false

根据列表的大小,复制会占用大量内存

更好的方法是使用BindingSource

每个UI对象将其数据源设置为BindingSource的新副本


BindingSources都设置了它们的.datasource=您试图绑定到的任何列表的相同实例。

您是否能够发布xaml以查看如何声明组合框?我认为您需要将SelectedItem特别绑定到DataContext中的同一属性,以观察该行为…*显然,这应该是DataContext;)托马斯的解决方案不起作用是没有道理的。您能否详细说明完整的代码以及如何测试/查看所有组合框共享选择