【发布时间】:2017-03-09 08:42:04
【问题描述】:
我有 2 个以 BindingLists 作为数据源的列表框。这个想法是创建一个列表构建器(如MSDN 命名它),其中第一个 listBox 显示当前添加的列,第二个 listBox 显示其余可用列。第一个列表包含ViewColumn 对象,而另一个列表包含strings。
我将选定的列从数据库加载到第一个 listBox 中,然后我想将其余可用列加载到第二个 listBox 中(列表本身来自数据库中的另一个位置)。考虑到列数没有限制,我想以最快的方式做到这一点 - 那会是什么?
以下是一些可视化的代码:
ViewTable _view;
BindingList<ViewColumn> _viewColumns = new BindingList<ViewColumn>();
BindingList<string> _detailsColumns = new BindingList<string>();
void CustomInitialize()
{
_view = //get view and its columns
_viewColumns = new BindingList<ViewColumn>(_view.Columns);
listBox_CurrentColumns.DataSource = _viewColumns;
listBox_CurrentColumns.DisplayMember = "Name";
var detailsTable = //get the list of available columns
foreach (var row in detailsTable)
{
//TODO: if _viewColumns does not contain this value, add it to _detailsColumns
_detailsColumns.Add(row.ColumnName);
}
listBox_AvailableColumns.DataSource = _detailsColumns;
}
【问题讨论】:
标签: c# winforms listbox listboxitems