关于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 ...
随机推荐
- byte,short,int,long数据之间的倍数关系
基本数据类型 byte = -128和127------------------------------------------------------------2的8次方,1个字节 shor ...
- 使用CSS实现透明边框的效果——兼容当前各种主流浏览器[xyytIT]
这个效果可是通过代码实现的哦,在不同浏览器下都可以正常显示 对于html中使用CSS实现透明边框的效果,主要有以下四种属性设置方法,但由于 这些属性兼容性并不是很好,单一使用会造成不同浏览器显示效果不 ...
- 无法打开登录所请求的数据库 "****"。登录失败
错误:无法打开登录所请求的数据库 "****".登录失败.用户 '****' 登录失败. sql2005连接时出现的错误 解决方法:权限不够,给登录名授权,赋予管理员角色,在登录名 ...
- HTML实例
HTML内容繁多,不易记忆,故将此网址 作为查阅复习的工具http://www.w3school.com.cn/example/html_examples.asp
- 使用bcp工具对boost库裁剪
有些时候,我们需要通过源代码来发布我们的产品,在使用了CI工具之后,一般我们要求每天对源码进行构建,以防止代码不可用了还不自知.如果我们使用了Boost库,我们就需要在构建的过程中将Boost同时构建 ...
- B/S与C/S的比较
1.C/S需要安装客户端软件,比如我们的qq就是C/S模式下的软件.如果使用这些软件我们必须先要下载客户端软件.如果软件更新了,就需要下载新的客户端进行更新. 2.B/S无需安装客户端软件,比如我们的 ...
- Spring的2.5版本中提供了一种:p名称空间的注入(了解)
1. 步骤一:需要先引入 p 名称空间 * 在schema的名称空间中加入该行:xmlns:p="http://www.springframework.org/schema/p"( ...
- Jmeter通过BeanShell Sampler获取Jmeter的Bin路径,并存入变量供后面的脚本调用
Jmeter的Bin路径是其运行路径,当把自动化测试的脚本放在Bin目录下时,为了将存储CSV的数据文件以及脚本的路径都设置成相对路径,我们需要获取到Jmeter的运行路径: 通过BeanShell ...
- 什么是tcp协议?
这是世界上最顶尖的tcp讲解技术...
- pageX/pageY,screenX/screenY,clientX/clientY的差别
pageX/pageY,screenX/screenY,clientX/clientY的差别 $(document).click(function(e){ //x方向无差别 //alert(e.pag ...