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的几个问题的更多相关文章

  1. MVVM下listbox默认显示最后一行

    原文地址:http://stackoverflow.com/questions/16866309/listbox-scroll-into-view-with-mvvm public class Scr ...

  2. WPF 自定义列表筛选 自定义TreeView模板 自定义ListBox模板

    有很多项目,都有数据筛选的操作.下面提供一个案例,给大家做参考. 左侧是数据源,搜索框加TreeView控件,右侧是ListBox控件.在左侧数据列点击添加数据,然后点击确定,得到所筛选的数据. 下面 ...

  3. WPF制作的VS黑色风格的Listbox

    最近写的一个玩具,WPF写出来的东西还是挺好看的 style.xaml <ResourceDictionary xmlns="http://schemas.microsoft.com/ ...

  4. jquery 双向select控件bootstrap Dual listbox

    http://www.cnblogs.com/hangwei/p/5040866.html       -->jquery 双向select控件bootstrap Dual listboxhtt ...

  5. C# 向listbox添加大量数据项的实践心得

    使用 ListBox.Items.Add 方法添加项时,可以使用 BeginUpdate 方法,以防止每次向列表添加项时控件都重新绘制 ListBox.完成向列表添加项的任务后,调用 EndUpdat ...

  6. 实现一个纵向排列的 ListBox ,并具有操作按钮

    需要实现的效果如下: 要想把 ListBox 的内容纵向显示很简单,只需把 ListBox 的内容控件为 WrapPanel 就可以了: <ListBox.ItemsPanel> < ...

  7. 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch

    [源码下载] 背水一战 Windows 10 (33) - 控件(选择类): ListBox, RadioButton, CheckBox, ToggleSwitch 作者:webabcd 介绍背水一 ...

  8. WPF 显示文件列表中使用 ListBox 变到ListView 最后使用DataGrid

    WPF 显示文件列表中使用 ListBox 变到ListView 最后使用DataGrid 故事背景: 需要检索某目录下文件,并列出来,提供选择和其他功能. 第一版需求: 列出文件供选择即可,代码如下 ...

  9. WPF 自定义ListBox

     如题,要实现一个如下的列表,该如何实现? 在设计过程中,会遇到如下问题: 1.ListBox中ListBoxItem的模板设计 2.ListBox中ListBoxItem的模板容器设计 3.List ...

  10. [WPF系列]-ListBox

    引言 本文就WPF中的ListBox常用项给以实例代码演示,包括隐蔽属性的设置,Style设置,以及ControlTemplate的自定义.   Listbox平滑滚动 <ListBox Ite ...

随机推荐

  1. Android中MD5加密

    最近项目中遇到MD5加密,代码很简单,又是死代码,不过要注意当长度不足32的时候要补个0.下面是具体代码,直接拷贝就能用. public static String getMD5(String str ...

  2. openresty + luajit

    https://moonbingbing.gitbooks.io/openresty-best-practices/content/lua/brief.html ftp://ftp.csx.cam.a ...

  3. 转)MySQL日期与时间函数

    -- MySQL日期时间处理函数 -- 当前日期:2017-05-12(突然发现今天512,是不是会拉防空警报) SELECT NOW() FROM DUAL;-- 当前日期时间:2017-05-12 ...

  4. ios runtime简单实用(添加动态属性)

    #import "Person.h" @interface Person (PersonCategory)   // 添加Person中没有的name属性 @property (n ...

  5. 【校招面试 之 C/C++】第31题 C++ 11新特性(二)之nullptr关键字

    1. 引入nullptr的原因 引入nullptr的原因,这个要从NULL说起.对于C和C++程序员来说,一定不会对NULL感到陌生.但是C和C++中的NULL却不等价.NULL表示指针不指向任何对象 ...

  6. js switch case注意事项

    今天写switch的时候发现没有达到预期效果,参照w3school的写法发现语法一致 想了一下,js是弱类型语言,是不是不支持number?试了一下将数字改为字符串,果然可以了 或者可以这样写:swi ...

  7. 旋转链表(所有元素往右移) rotate list

    [抄题]: 给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数 样例 给出链表1->2->3->4->5->null和k=2 返回4->5-& ...

  8. NetworkStateReceiver的简单应用

    一.网络状态接收者是一个广播接收者当网络状态发生改变时会收到网络状态改变的广播 本例当网络状态改变时会进行相应处理 例如当断网时会发出通知点击通知后 会打开网络设置界面 代码如下: package c ...

  9. 【深度好文】多线程之WaitHandle-->派生-》Semaphore信号量构造

    Semaphore 继承自WaitHandle. 信号量说简单点就是为了线程同步,或者说是为了限制线程能运行的数量. //创建一个限制资源类 //资源数为5,开放资源数为2 //主线程自动占有3个资源 ...

  10. Linq select 语法

    文档:https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b 1.可以对查询出来的结果做一些转换,下面的例子在数组中查找以"B&q ...