![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| jorikdima |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 18.1.2008 Где: Там, где Зенит Репутация: нет Всего: нет |
Добрый день.
Задача такая. Хотелось бы, чтобы, например, свойство Enabled контрола Button непосредственно зависело от мною созданного свойства в классе Form (ну точнее наследованного от Form). Я делал так:
Так вот. В обработчик он попадает три раза при старте (инициализации) программы, но в момент изменения свойства CurrentPatientId - нет! Почему? Спасибо. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Датабиндинг не опрашивает произвольные свойства время от времени. Некоторые свойства в сеттере вызывают определённые методы оповещения об изменениях (см. System.ComponentModel), видимо это свойство ничего о своих изменениях не говорит.
-------------------- ![]() |
|||
|
||||
| jorikdima |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 18.1.2008 Где: Там, где Зенит Репутация: нет Всего: нет |
Читал читал MSDN но все как то вокруг да около. У них все так или иначе сводится к биндингу к dataset или тому подобному. А мне надо биндиться к своему свойству и про это я там не нашел. Поставил к свойству атрибут [System.ComponentModel.Bindable(true)] но это ничего не изменило. Как сделать так, чтоб свойство говорило о своих изменениях?
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
забайндить на такой класс mainForm вам врядли удасться.
для байдинга нужно чтобы объект реализовывал INotifyPropertyChanged , и соотвествующим образом при изменении свойства, на которое вы биндитись, вызывал обраоттчики событий , повешанных на MultyCastDelegate PropertyChanged (определен в INotifyPropertyChanged). в общем у вас нету реализации паттерна observe, а вот реализуете INotifyPropertyChanged правильно, может че и получится 8) -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| jorikdima |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 18.1.2008 Где: Там, где Зенит Репутация: нет Всего: нет |
Не очень понял данную фразу. Поясню задачу еще раз. Я хочу привязать различные контролы (пусть они и лежат на mainForm) к одному из свойств класса mainForm (хотя это думаю не принципиально). Причем свойство это мое, а не одно из стандартных свойств класса Form. Это невозможно? То что вы написали ниже относится к моей ситуации? |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
да, то что я описал ниже относится к вашей ситуации. почитайте про INotifyPropertyChanged и паттрен http://ru.wikipedia.org/wiki/Observer_(%D0...B5%D0%BB%D1%8C)
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |