Запомнить привязанные свойства для CheckedListBox

148
28 апреля 2018, 15:52

Код ниже выполняет привязку строк из CheckedListBox1-а к свойствам Value, которые в свою очередь связаны с TextBox-ами. Подскажите пожалуйста, как в C# WinForms VS2010 исправить следующую проблему: значения Value запоминаются только если строка из CheckedListBox1-а принимает статус Unchecked.Например, после привязки, для каждой строки из CheckedListBox1 вводятся значения в TextBox-ы, и эти значения запоминаются только если строки попереключать, другими словами, если вводить данные в TextBox-ы с текущим статусом строки Checked для CheckedListBox1-а, то они не запоминаются?

public class Person
    {
        public string Name { get; set; }
        public string Value1 { get; set; }
        public string Value2 { get; set; }
        public string Value3 { get; set; }
    }
private void btn1_Click(object sender, EventArgs e)
{
  people = new BindingList<Person>();
  foreach (var item in CheckedListBox1.Items)
    {
       Person p = new Person
       {
                Name = item.ToString(),
                Value1 = TextBox1.Text,
                Value2 = TextBox2.Text,
                Value3 = TextBox3.Text,
       };
       people.Add(p);
    }
   var listBox = ((ListBox)CheckedListBox1);
   listBox.DataSource = people;
   listBox.DisplayMember = "Name";
   TextBox1.DataBindings.Clear();
   TextBox2.DataBindings.Clear();
   TextBox3.DataBindings.Clear();
   TextBox1.DataBindings.Add("Text", people, "Value1");
   TextBox2.DataBindings.Add("Text", people, "Value2");
   TextBox3.DataBindings.Add("Text", people, "Value3");
}
Answer 1

Перепишите привязка таким образом

TextBox1.DataBindings.Add("Text", people, "Value1",DataSourceUpdateMode.OnPropertyChanged);

Если вы не укажете OnPropertyChanged,объект модели не будет обновляться,читайте тут

READ ALSO
как проверить сертификат сайта на c#

как проверить сертификат сайта на c#

есть адрес веб-сайта к примеру https://rustackoverflow

138
Вытягивание текста из другой программы

Вытягивание текста из другой программы

Установлен СофтФон MicroSip, и при поступлении входящего звонка необходимо вытаскивать номер телефонаЧем в этом случае пользоваться?

165
Генерация случайных дробных чисел

Генерация случайных дробных чисел

Есть вот такая задача: Сгенерировать массив чисел, сумма которых составит 1Кол-во чисел вводится с клавиатуры

146
Derived Control: Implement CreateHandle

Derived Control: Implement CreateHandle

Как правильно реализовать производный от SystemWindows

155