Как привязать DataBox к определенному индексу в списке <> - PullRequest
2 голосов
/ 26 октября 2011

У меня есть стандартные настройки привязки данных для всех моих TextBox-ов к объекту, подобным этому:

TextBoxMenuID.DataBindings.Add("Text", _selectedObject, "ID");

И я хочу связать некоторые из моих TextBox с индексом List <> в этом объекте следующим образом:

TextBoxQ1.DataBindings.Add("Text", _selectedObject._qList[0].QuestionString, null);

Привязка не работает таким образом. Любые идеи, как пойти об этом виде связывания?

Спасибо, SleffTheRed

Ответы [ 2 ]

4 голосов
/ 26 октября 2011

Если вы используете общий список в качестве набора данных, вы можете сделать это следующим образом:

List<Person> list;
public Form1()
{
   InitializeComponent();
   list = new List<Person>();
   list.Add(new Person { ID = 1, Name = "Name 1", Age = 21 });
   list.Add(new Person { ID = 2, Name = "Name 2", Age = 28 });

   textBox1.DataBindings.Add(new Binding("Text", list, "ID", false));
   textBox2.DataBindings.Add(new Binding("Text", list, "Name", false));
   textBox3.DataBindings.Add(new Binding("Text", list, "Age", false));
}

internal class Person
{
   public int ID { get; set; }
   public string Name { get; set; }
   public int Age { get; set; }
}
2 голосов
/ 26 октября 2011

Кредит Мите за код, но для изменения индекса просто добавьте []:

list = new List<Person>();
list.Add(new Person { ID = 1, Name = "Name 1", Age = 21 });
list.Add(new Person { ID = 2, Name = "Name 2", Age = 28 });
list.Add(new Person { ID = 3, Name = "Name 3", Age = 44 });

textBox1.DataBindings.Add(new Binding("Text", list[0], "Name", false));
textBox2.DataBindings.Add(new Binding("Text", list[1], "Name", false));
textBox3.DataBindings.Add(new Binding("Text", list[2], "Name", false));

internal class Person
{
    public int ID { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...