2015-10-08 2 views
1

Как изменить программный код индекса DataBinding?Как изменить программный код индекса DataBinding

Для примера: у меня есть список <> коллекция имени MyList и два элемента управления размещены на форме textBox1 и ListBox1 оба элемента управления связываются с MyList.

во время исполнения, управление 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")); 


    } 


} 

пожалуйста совет,

благодарит

ответ

2

Вы можете использовать что-то вроде этого

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

Возможно, вам будет полезно ознакомиться со следующими сообщениями MSDN BindingContext Class и
Control.BindingContext Property

+0

Отлично! большое вам спасибо ... –

+0

@HaseebAhmed Когда вы найдете ответ, вы можете нажать на галочку рядом с ответом, чтобы принять его. Вы можете проверить только один ответ, как принято, в то время как вы можете проголосовать столько ответов, сколько найдете, нажав стрелку вверх рядом с ответом. Таким образом, это будет более полезно для других пользователей в будущем. Также вы можете проголосовать за хорошие вопросы. –

+0

благодарит за советом. сделанный!!! –