当前位置:  开发笔记 > 编程语言 > 正文

C#绑定:如何在BindingList中禁用CurrencyManager,以便不维护当前项位置并且不发信号?

如何解决《C#绑定:如何在BindingList中禁用CurrencyManager,以便不维护当前项位置并且不发信号?》经验,为你挑选了1个好方法。

我有两个数据包到同一个BindingList的ListBox.

问题是当从GUI更改所选项时,它正在改变BindingList中的位置,然后BindingList发信号通知另一个ListBox以更改其所选项.

所以我已经同步了两个ListBoxes Selected Item,这对我不利.

我想保持项目列表同步.没有光标位置.

如何禁用该光标以使其不被维护?

示例代码(只需在设计时向表单添加两个ListBox,并注册SelectedIndexChanged事件并使用按钮注册按钮单击事件):

public partial class Form1 : Form
{
    BindingList list = new BindingList();

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        list.Add("bla1");
        list.Add("bla2");
        list.Add("bla3");

        this.listBox1.DataSource = list;
        this.listBox2.DataSource = list;
    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (listBox1.SelectedIndex != -1)
            System.Diagnostics.Trace.WriteLine("ListBox1: " + listBox1.SelectedItem.ToString());
    }

    private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (listBox2.SelectedIndex != -1)
            System.Diagnostics.Trace.WriteLine("ListBox2: " + listBox2.SelectedItem.ToString());
    }

    // Register this event to a button
    private void button1_Click(object sender, EventArgs e)
    {
        list.Add("Test");
    }
}

谢谢, - 兰.



1> jyoung..:

将此行添加到Form_Load:

this.listBox1.BindingContext = new BindingContext();

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有