如何以编程方式更改 DataBinding 索引位置

How do I change DataBinding index position programmatically

如何以编程方式更改 DataBinding 索引位置?

例如:我有一个名为 MYLIST<T>list<> 集合,并且在表单 TEXTBOX1 上放置了两个控件和 LISTBOX1 两个控件都与 MYLIST<T>.

绑定

在执行时,LISTBOX 控件从 MYLIST 填充,当我单击 LISTBOX1-Item 时,TEXTBOX1.Text 根据 MYLIST 的选定索引进行更改,因为这两个控件都与 MY LIST 绑定。

我想以编程方式设置列表索引位置 2。就像当我点击一个按钮时 TEXTBOX1.Text 应该根据列表索引 [2] 改变,当点击 LISTBOX1.

的第二个项目时同样的行为

我已经试过了。Select但是没有成功,

这里是示例代码:

public partial class Form1 : Form
{
    public sealed class Person
    {
        public string name { get; set; }
    }
    private List<Person> myList = new List<Person>();
    public Form1()
    {
        InitializeComponent();

        myList.Add(new Person(){name = "MyName1"});
        myList.Add(new Person(){name = "MyName2"});
        myList.Add(new Person(){name = "MyName3"});

        textBox1.DataBindings.Add(new Binding("Text", myList, "name"));

        listBox1.DataSource = myList;
        listBox1.DisplayMember = "name";
        listBox1.ValueMember= "name";
    }

    private void button2_Click(object sender, EventArgs e)
    {
        myList.Select(person => person.name.StartsWith("MyName2"));
    }
}

你可以使用这样的东西

BindingContext[myList].Position = myList.FindIndex(person => person.name.StartsWith("MyName2"));

您可能会发现阅读以下 MSDN 链接BindingContext Class
很有用 Control.BindingContext Property