Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает Binding на свойство моего класса 
V
    Опции темы
-Mikle-
Дата 6.3.2009, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Хотел сделать класс, который отлавливает событие изменения привязанных к Binding данным, но что-то, видимо, не так делаю... 

Так создаю и привязываю Binding:
Код

            Binding binding = new Binding("IsChecked");
            binding.Source = checkBox1;
            binding.Mode = BindingMode.OneWay;

            BindingObject obj = new BindingObject();
            BindingOperations.SetBinding(obj, BindingObject.BindingValueProperty, binding);

            // Если привязываю к Button, например, то работает хорошо:
            // BindingOperations.SetBinding(btnRemove, Button.IsEnabledProperty, binding);


А это сам класс. Пробовал наследовать его от FrameworkElement (на всякий случай  smile ) и использовать FrameworkPropertyMetadata (тоже на всякий случай), никаких изменений не дает.
Код

        public class BindingObject : DependencyObject
        {
            public static DependencyProperty BindingValueProperty =
                DependencyProperty.Register("BindingValue", typeof(object), typeof(BindingObject),
                new PropertyMetadata  (new PropertyChangedCallback(BindingObject.OnBindingValueChanged)));
            private static void OnBindingValueChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
            {
                System.Diagnostics.Debug.Write("OnBindingValueChanged raised!" + e.NewValue);
            }

            public object BindingValue
            {
                get { return this.GetValue(BindingObject.BindingValueProperty); }
                set { this.SetValue(BindingObject.BindingValueProperty, value); }
            }
        }


Событие вызывается один раз при привязывании к свойству, иногда еще несколько раз при изменениях, а потом затыкается. То есть вроде как работает, но не стабильно, первые несколько секунд и то не всегда... как будто какой-то Exception где-то отлавливается и класс затыкается...

Проект, который этот код содержит, новый и никакого другого кода в нем нет и не было. То есть варианты: "у тебя где-то что-то в коде..." отпадают. В окне только CheckBox и Button...

Подскажите, что не так? Что еще нужно?


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Partizan
Дата 6.3.2009, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 67



-Mikle-, скорее всего BindingObject прибивается GC...сейчас попробую у себя...

Добавлено через 8 минут и 36 секунд
-Mikle-, так  и есть...если obj сделать членом класса, то всё хорошо.


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
-Mikle-
Дата 6.3.2009, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Все... Пора мне в отпуск...  smile 
Это-ж надо было так обложаться!!!!! И смешно и плакать хочется блин.....  Туплю братцы я, ТУПЛЮ!!!  smile 
Где моя бдительность???  smile  Конечно же прибивается! На него ведь ссылки ж не остается..... слов нет, одни эмоции! Два часа!!!! Два часа думал в чем же дело!!!!


Partizan, Спасибо что ткнул меня  smile !   Считаю нужным поставить тебе (+1) за бдительность  smile !


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Partizan
Дата 6.3.2009, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 67



-Mikle-, 

у меня просто уже был аналогичный печальный опыт в реальном проекте  smile  
Поэтому я был в чуть более выигрышном положении smile


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.