不管是WPF还是winform中,多个ComboBox 绑定同一个数据源时,选择其中一个ComboBox,其他的也跟着变成同一选项.原因是combobox绑定了同一个数据源,对数据源的操作导致了其他控件改变.但是在有些情况下, 我们确实需要让多个combobox控件绑定同一个数据源,但不想让他们联动.这样就必须想办法让他们分别对应一个数据源.
为每一个combox都设置不同的数据源就行了WPF中
public class TEST : BaseNotifyPropertyChanged
{
public string Name { get; set; }
public ObservableCollection<string> TypeList { get; set; }
}
datagrid中combox使用DataGridTemplateColumn
<DataGridTemplateColumn Header="Type" Width="100" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Text="{Binding Type,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding TypeList}" BorderThickness="0" HorizontalContentAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Winform中
DataTable source;
ComboBox1中的数据使用source复制内容
ComboBox1.DataSource=source.Copy();
ComboBox2中的数据也使用source复制内容
ComboBox2.DataSource=source.Copy();