2016-11-07 59 views
0

我目前正在为角色扮演游戏制作角色生成器。我有一种方法可以将能力得分和数组中的数据进行比较。我将数组转换为List。然后我将所有组合框指向数据源。我将它们分开绑定,因此它们都不会更改为相同的数字。不幸的是,我在选择一个列表时从列表中删除一个数字时遇到了很多问题。这是迄今为止的样子。任何帮助,将不胜感激。提前致谢。使用多个组合框更改单个数据源

List<int> abilityList = allAtribs.ToList(); 
     strCombo.DataSource = new BindingSource(abilityList, null); 
     dexCombo.DataSource = new BindingSource(abilityList, null); 
     conCombo.DataSource = new BindingSource(abilityList, null); 
     intCombo.DataSource = new BindingSource(abilityList, null); 
     wisCombo.DataSource = new BindingSource(abilityList, null); 
     chaCombo.DataSource = new BindingSource(abilityList, null); 

回答

0

代替List<int>,创建一个BindingList<int>并将其存储在一模板构件。

形式:

private BindingList<int> abilityList; 

初始化:

// if allAttribs is int[], you can remove .ToList() 
abilityList = new BindingList<int>(allAtribs.ToList()); 
strCombo.DataSource = new BindingSource(abilityList, null); 
dexCombo.DataSource = new BindingSource(abilityList, null); 
// etc.... 

然后,你可以简单地删除abilityList值(或增加新的价值,更新退出值),更改会自动体现在所有组合框中。

这是因为BindingList<T>IList<T>还提供了数据绑定感知组件识别的标准更改通知。

相关问题