Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2018, 11:20   #1
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию Запомнить привязанные свойства для CheckedListBox

Здравствуйте Уважаемые программисты!
Код ниже выполняет (по нажатию кнопки btn1) привязку строк из CheckedListBox1-а к свойствам Value*, которые в свою очередь связаны с TextBox-ами. Подскажите пожалуйста, как в c# winforms vs2010 исправить следующую проблему: значения Value* запоминаются только если строка из CheckedListBox1-а принимает статус Unchecked? Например, после привязки, для каждой строки из CheckedListBox1 вводятся значения в TextBox-ы, и эти значения запоминаются (в MessageBox.Show(p.Value1) например) только если строки попереключать, другими словами, если вводить данные в 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");
}
ольгаг вне форума Ответить с цитированием
Старый 27.04.2018, 11:46   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

С твоими объяснениями ничего не понятно. Сделай демку, скажи, как воспроизвести поведение, которое надо поправить и каким ты оно должно быть. Проект приложи к сообщению. Столько раз спрашиваешь одно и то же в разных интерпретациях, что уже не понятно что нужно.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 27.04.2018, 13:12   #3
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

ссылка на демку проекта https://yadi.sk/d/Ako8x3i_3Uqb6z.
Файлы mdb и dot положить на диск с.
Запустить - нажать кн "Создать группу сотрудников" - в окне формы3 выбрать сотрудника и нажать кн "Выбрать" - далее в форме2 нажать кн "Создать" - нажать кн "8часов" - нажать кн "Сформировать".
Проблема: в таблицу word не выгружаются значения из текстбоксов.
Заранее спасибо!

Последний раз редактировалось ольгаг; 27.04.2018 в 13:30.
ольгаг вне форума Ответить с цитированием
Старый 27.04.2018, 13:18   #4
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Выложи на Google disk или Yandex disk и пришли мне ссылку в ЛС, если это так секретно.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 27.04.2018, 13:22   #5
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Выложила (на пост выше).
ольгаг вне форума Ответить с цитированием
Старый 27.04.2018, 14:15   #6
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Добавила к строке привязки текстбоксов "DataSourceUpdateMode.OnPropertyCha nged" - вроде работает.
ольгаг вне форума Ответить с цитированием
Старый 27.04.2018, 15:25   #7
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Сделал исправления. Не проверял код, связанный с вордом, потому что у меня нет такого com-объекта.
Вложения
Тип файла: 7z проба.7z (85.9 Кб, 11 просмотров)
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 27.04.2018, 19:14   #8
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Спасибо!
В коде
Код:
PersonCollectionVM.cs
три ошибки (https://yadi.sk/i/B3tsAddb3UrNzH).
ольгаг вне форума Ответить с цитированием
Старый 28.04.2018, 08:53   #9
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Ну да, у тебя же vs2010.. тогда так:
Код:
    internal class PersonCollectionVM : INotifyPropertyChanged
    {
        public PersonCollectionVM()
        {
            DataSource = new BindingList< Person >();
            Focused = DataSource.Count > 0 ? DataSource[ 0 ] : nullValue;
        }

        private readonly Person nullValue = new Person { Name = "" };

        private Person focused;

        public BindingList< Person > DataSource { get; }

        public Person Focused
        {
            set
            {
                if ( Equals( value, focused ) )
                    return;
                focused = value ?? nullValue;
                OnPropertyChanged( "Focused" );
            }
            get { return focused; }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        protected virtual void OnPropertyChanged( string propertyName )
        {
            var h = PropertyChanged;
            if ( h != null )
                h( this, new PropertyChangedEventArgs( propertyName ) );
        }
    }
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выгрузить привязанные данные в word ольгаг C# (си шарп) 0 24.04.2018 14:33
Запомнить значения из нескольких TextBox-ов отдельно для выбранного элемента CheckListBox-а ольгаг C# (си шарп) 5 03.04.2018 12:58
c# checkedlistbox stupid Помощь студентам 2 16.12.2010 13:15
Вычислить и запомнить количество отрицательных элементов каждого столбца для матрицы A(10,10) , B (15,20) bitmania Помощь студентам 3 15.10.2008 01:06