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

本文关键字:DataBinding 索引 位置 方式更 编程 | 更新日期: 2023-09-27 18:16:38

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

例如:我有一个list<>集合命名为 MYLIST<T> 和两个控件放置在窗体TEXTBOX1LISTBOX1两个控件绑定MYLIST<T>

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

我想以编程方式设置列表索引位置2。比如当我点击一个按钮时,所以是TEXTBOX1。文本应该根据列表索引[2]改变,当点击LISTBOX1的第二项时,行为相同。

I have try .Select but no luck,

下面是示例代码:
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"));
    }
}

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

你可以这样写

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

你可能会发现下面的MSDN链接很有用BindingContext类和
控制。BindingContext地产