关于ListBox的几个问题
Winfrom ListBox绑定数据源list界面不更新问题与绑定数据源不可CRUD问题
场景:获取一个listbox的选中项添加到另一个listbox中
解决方案-1:不要直接绑定DataSource 先把ListBox绑定到BindingSource bs中在绑定bs即可
代码案例:
1-1:可更新全部添加
private void btnAdd_Click(object sender, EventArgs e)
{
ListBox.SelectedObjectCollection selectObj = this.listLeft.SelectedItems;
foreach (DataRowView item in selectObj)
{
Sta sta = new Sta();
sta.STCD = int.Parse(item.Row.ItemArray[].ToString());
sta.Name = item.Row.ItemArray[].ToString();
list.Add(sta);
}
BindingSource bs = new BindingSource();
bs.DataSource = list;
this.listRight.DataSource = bs;
this.listRight.DisplayMember = "NAME";
this.listRight.ValueMember = "STCD";
}
1-2:更改后的 去掉重复项添加
private void btnAdd_Click(object sender, EventArgs e)
{
ListBox.SelectedObjectCollection selectObj = this.listLeft.SelectedItems;
foreach (DataRowView item in selectObj)
{
bool b = true;
//要查看listright是否已经有了这一项,有就不添加
foreach (Model.Sta rightItem in this.listRight.Items)
{
if (rightItem.Name == item.Row.ItemArray[].ToString())
{
b = false;
}
}
if (b)
{
Sta sta = new Sta();
sta.STCD = int.Parse(item.Row.ItemArray[].ToString());
sta.Name = item.Row.ItemArray[].ToString();
list.Add(sta);
}
}
BindingSource bs = new BindingSource();
bs.DataSource = list;
this.listRight.DataSource = bs;
this.listRight.DisplayMember = "NAME";
this.listRight.ValueMember = "STCD";
}
1-3: 妈蛋 设置 DataSource 属性后无法修改项集合 只能绑定到list集合了,不知道有没有好办法解决
····换成list还是不行,根本原因就是不能用datasource去绑定
只能直接添加item
1-4 最终版本 0.0
#region 添加右边listboxitems
ListBox.SelectedObjectCollection selectObj = this.listLeft.SelectedItems;
foreach (Model.Sta item in selectObj)
{
bool b = true;
//要查看listright是否已经有了这一项,有就不添加
foreach (Model.Sta rightItem in this.listRight.Items)
{
if (rightItem.Name == item.Name)
{
b = false;
}
}
if (b)
{
Sta sta = new Sta();
sta.STCD = item.STCD;
sta.Name = item.Name;
this.listRight.Items.Add(sta);
}
}
this.listRight.DisplayMember = "NAME";
this.listRight.ValueMember = "STCD";
#endregion
//删除左边已经添加的item
//1-2:把选中的item移除
int icount = listLeft.SelectedItems.Count;
for (int i = ; i < icount; i++)
{
this.listLeft.Items.Remove(listLeft.SelectedItems[icount - - i]);
}
关于ListBox的几个问题的更多相关文章
- MVVM下listbox默认显示最后一行
原文地址:http://stackoverflow.com/questions/16866309/listbox-scroll-into-view-with-mvvm public class Scr ...
- WPF 自定义列表筛选 自定义TreeView模板 自定义ListBox模板
有很多项目,都有数据筛选的操作.下面提供一个案例,给大家做参考. 左侧是数据源,搜索框加TreeView控件,右侧是ListBox控件.在左侧数据列点击添加数据,然后点击确定,得到所筛选的数据. 下面 ...
- WPF制作的VS黑色风格的Listbox
最近写的一个玩具,WPF写出来的东西还是挺好看的 style.xaml <ResourceDictionary xmlns="http://schemas.microsoft.com/ ...
- jquery 双向select控件bootstrap Dual listbox
http://www.cnblogs.com/hangwei/p/5040866.html -->jquery 双向select控件bootstrap Dual listboxhtt ...
- C# 向listbox添加大量数据项的实践心得
使用 ListBox.Items.Add 方法添加项时,可以使用 BeginUpdate 方法,以防止每次向列表添加项时控件都重新绘制 ListBox.完成向列表添加项的任务后,调用 EndUpdat ...
- 实现一个纵向排列的 ListBox ,并具有操作按钮
需要实现的效果如下: 要想把 ListBox 的内容纵向显示很简单,只需把 ListBox 的内容控件为 WrapPanel 就可以了: <ListBox.ItemsPanel> < ...
- 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch
[源码下载] 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch 作者:webabcd 介绍背水一 ...
- WPF 显示文件列表中使用 ListBox 变到ListView 最后使用DataGrid
WPF 显示文件列表中使用 ListBox 变到ListView 最后使用DataGrid 故事背景: 需要检索某目录下文件,并列出来,提供选择和其他功能. 第一版需求: 列出文件供选择即可,代码如下 ...
- WPF 自定义ListBox
如题,要实现一个如下的列表,该如何实现? 在设计过程中,会遇到如下问题: 1.ListBox中ListBoxItem的模板设计 2.ListBox中ListBoxItem的模板容器设计 3.List ...
- [WPF系列]-ListBox
引言 本文就WPF中的ListBox常用项给以实例代码演示,包括隐蔽属性的设置,Style设置,以及ControlTemplate的自定义. Listbox平滑滚动 <ListBox Ite ...
随机推荐
- shell脚本通过expect脚本实现自动输入密码(使用expect)
背景:在远程文件下载时,需要输入对方的服务器密码,shell不支持交互输入内容,可以用下面两种方式实现 一.在shell脚本中嵌入expect来实现密码输入 expect是一个自动交互功能的工具. ...
- 执行js,通过js显示隐藏的输入框,或者给input赋值
在测试过程中,有些输入框是隐藏的,如果直接对他进行赋值,会找不到这个输入框,从而导致脚本运行失败. 例如下面的这个密码输入框: 登录密码输入框分为两个input,下面的是提示的,上面的才是真正存下来的 ...
- rapidjson使用
Value构造 Value对象最好先声明后初始化,如果声明直接初始化可能出错. rapidjson::Value a; a = val[i]; Value传参 Value传参,最好显式使用右值,如st ...
- linux 下的 rsync 文件同步
rsync是linux下的一款快速增量备份工具Remote Sync,是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息.rsync是用 “rsync ...
- sphinx文档
Navigation index modules | Sphinx主页 | 文档 » 下载 目前版本: 1.2 获得 Sphinx 从 Python Package Index, 或者使用如下命令安装 ...
- 不要用for in语句对数组进行遍历
for...in主要用于对数组和对象的属性进行遍历.for ... in 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作. 语法:for (variable in object) ...
- APP UI结构-首页功能点大集锦,很干很详细
APP UI结构的系列的文章有一段时间没有更新了,因为最近在学一些新东西和看一些新书籍,适当的给自己充电也是为了更好的输出,言归正传,今天想跟大家聊的是和首页相关的一些内容,可能有些内容最近有的小伙伴 ...
- VMware下的Linux系统中Windows的共享目录,不支持创建软连接
[问题] 在编译VMware下的Linux系统对从Windows中共享过来的文件,进行编译的时候,遇到: ln: creating symbolic link XXXXXX : Operation ...
- 6. Manage the driver for browser and the script for Hub
- centos7 编译安装mysql
centos 7 安装mySql 1,准备mySql源码安装 #wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar ...