powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / BindingSource к DateTimePicker
2 сообщений из 2, страница 1 из 1
BindingSource к DateTimePicker
    #37999402
BlackSSA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Искал по форуму ответ на свой вопрос, но не нашел. Что-то близкое было в ответе bagler в DateTimePicker и значение NULL , но у меня не сработало. Проблема:
Есть некий класс:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Person
{
    //Имя 
    public string name {get;set;}
    //Дата поступления звонка
    public DateTime dateInput{get;set}
    //Дата встречи с человеком
    public DateTime dateVisit{get;set;}

    //Конструктор по умолчанию
    public Person()
    {
        this.name="Иванов Иван Иванович";
        this.dateInput=DateTime.Now;                           //т.е. речи о null датах не идет - 
        this.dateVisit=new DateTime(2000, 1, 1, 6, 0, 0);  // - у дат всегда есть значения
    }
    ...
}


и есть форма Form1, на которой расположены два TextBox`а и один DateTimePicker:
tbFio - вводим имя
tbDateInput - дата поступления звонка (textBox, т.к. пользователю выбирать ничего не надо)
dtpDateVisit - когда хотим встретиться с человеком.

В классе формы биндю:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
//При создании формы создается новый экземпляр 
private Person person;
...
public Form1()
{
    InitializeComponent();
    person=new Person();
}
private void bindings()
{
    tbFio.DataBindings.Add("Text",person,"name");
    tbDateInput.DataBindings.Add("Text",person,"dateInput");
    dtpDateVisit.DataBindings.Add("Value",person,"dateVisit");
}


А дальше все очень интересно:
если закомментировать dtpDateVisit.DataBindings.Add("Value",person,"dateVisit"), то первые два контрола отображают ожидаемые значения;
снимаю коммент и ... tbDateInput - текущая дата, dtpDateVisit - текущая дата, т.е. мало того, что нет привязки dtpDateVisit, так он еще "сбивает" привязку tbDateInput! поле dateVisit меняет значение, если изменить дату в контроле, но не отображает по умолчанию! Если в конструктор формы вручную воткнуть dtpDateVisit.Value=person.dateVisit, то все работает, но мне кажется, что это моветон.
Собственно вопрос: как побороть? И почему третья привязка влияет на вторую?
...
Рейтинг: 0 / 0
BindingSource к DateTimePicker
    #38004117
BlackSSA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос закрыт.
Ошибка была в моей невнимательности. Приведенный код был упрощенной версией рабочего, а в рабочем коде dateTimePicker унаследован от базового + добавлен интерфейс и пару функций. Я передавал неверное значение в контрол, поэтому и слетал биндинг к другим контролам. Пока не понял, почему не вызывалось исключение, но это уже другая тема. Всем спасибо!
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / BindingSource к DateTimePicker
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]