powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
13 сообщений из 13, страница 1 из 1
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37818913
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если при описании свойства указан value-тип ( а может только для примитивных типов вроде int, double и т. п. ), событие PropertyChanged не возникает при присвоении того же значения , что хранится в свойстве. Если тип свойства меняем на object - PropertyChanged вызывается всегда, в том числе и когда присваивается то же значение. Возможно такое поведение имеет место для всех ref-типов, не проверял.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
PersID = 10; // changed
PersID = 20; // changed
PersID = 20; // changed только в случае, если тип свойства object

...

        #region PersID Property

        public static readonly DependencyProperty PersIDProperty =
            DependencyProperty.Register(
                "PersID",
                typeof(int?), // тут меняем на typeof(object) и PropertyChanged начинает срабатывать всегда
                typeof(FrmPersonalDetail)
            );

        public int? PersID
        {
            get { return (int?)GetValue(PersIDProperty); }
            set { SetValue(PersIDProperty, value); }
        }

        #endregion


Кто-нибудь встречал описание этого явления в документации по WPF ?
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37819150
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public static readonly DependencyProperty ValueProperty =
    DependencyProperty.Register(
        "Value", typeof(decimal), typeof(NumericUpDown),
        new FrameworkPropertyMetadata(MinValue, new PropertyChangedCallback(OnValueChanged),
                                      new CoerceValueCallback(CoerceValue)));

private static object CoerceValue(DependencyObject element, object value)
{
    decimal newValue = (decimal)value;

    newValue = Math.Max(MinValue, Math.Min(MaxValue, newValue));

    return newValue;
}

private static void OnValueChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
    NumericUpDown control = (NumericUpDown)obj;

    RoutedPropertyChangedEventArgs<decimal> e = new RoutedPropertyChangedEventArgs<decimal>(
        (decimal)args.OldValue, (decimal)args.NewValue, ValueChangedEvent);
    control.OnValueChanged(e);
}



попробуй сделать, как в этом хитром примере.
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37819177
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKпопробуй сделать, как в этом хитром примере.Да я знаю как в моём случае сделать. Мне бы ссылку на MSDN где подробно описано это поведение.
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37819185
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

а как сделать в твоем случае?
похоже ссылку не получишь, только через рефлектор.
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37819218
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKа как сделать в твоем случае?Как я уже писал, если хочется чтобы PropertyChanged возникал в случае присвоения того же значения - поставить свойству тип object . Типизированный get/set можно оставить как есть.
AlexeiKпохоже ссылку не получишь, только через рефлектор.Жаль.
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37819224
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

а ты заметил в том примере, который я из мсдн взял, что там без object обходятся?
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37819246
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKАлексей К,

а ты заметил в том примере, который я из мсдн взял, что там без object обходятся?Моё решение мне нравится больше. Более того, мне недостаточно просто получить PropertyChanged Callback у одного свойства. Мне надо ещё чтобы датабиндинги сработали соответствующим образом, чтобы возникло PropertyChanged у "прибинденных" свойств.
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37819780
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне видится у кого-то началось раздвоение личности :D
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37819784
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKпопробуй сделать, как в этом хитром примере.Более подробно посмотрел "хитрый пример". Он не решает описанную проблему.
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37819786
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уТКамне видится у кого-то началось раздвоение личности :D:-)
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37820258
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот в прошлом у меня было такое только с АлексейК
тут много таких )
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37820917
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKАлексей К,

а ты заметил в том примере, который я из мсдн взял, что там без object обходятся?
А можно ссылку на пример, который вы из MSDN взяли?
...
Рейтинг: 0 / 0
WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
    #37821042
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic,

х
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF4, DependencyProperty, PropertyChangedCallback, интересный факт.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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