如何以编程方式更改DataBinding索引位置?
例如:我有一个名为 list<>
的MYLIST<T>
集合,另外两个控件位于 TEXTBOX1 和 LISTBOX1 两个控件都与MYLIST<T>
绑定。
在执行时,LISTBOX控件从MYLIST填充,当我点击LISTBOX1-Item时,TEXTBOX1.Text按照MYLIST的选定索引进行更改,因为两个控件都与MY LIST绑定。
我想以编程方式设置列表索引位置2。就像当我点击一个按钮所以TEXTBOX1.Text按照列表索引[2]改变时,单击LISTBOX1的第二项时会出现相同的行为。
我试过了。选择但没有运气,
这是示例代码:
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"));
}
}
答案 0 :(得分:2)
你可以使用这样的东西
BindingContext[myList].Position = myList.FindIndex(person => person.name.StartsWith("MyName2"));
您可能会发现有用的内容可以阅读以下MSDN链接BindingContext Class和
Control.BindingContext Property