Уведомление об изменении свойства зависимостей для своих наблюдателей - PullRequest
0 голосов
/ 18 июля 2011

У меня есть следующее в xaml.

<TextBlock Text="{Binding Title}" />

И создал следующее свойство зависимости,

public string Title
        {
            get { return (string)GetValue(TitleProperty); }
            set
            {
                SetValue(TitleProperty, value);

                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("Title"));
                }
            }
        }

        public static readonly DependencyProperty TitleProperty =
            DependencyProperty.Register("Title", typeof(string), typeof(ColumnChart), new PropertyMetadata(string.Empty));

Теперь, если я связываю свойство Title в другом xaml, значение не берется. Потому что уведомление PropertyChange не вызывается. И всегда PropertyChanged имеет значение null.

Как я могу уведомить список наблюдателей, что это свойство изменено, так что значение будет обновлено.

1 Ответ

0 голосов
/ 18 июля 2011

Я не совсем уверен, что вы подразумеваете под "Как я могу уведомить список наблюдателей, что это свойство изменено, так что значение будет обновлено."

Это похоже на пользовательский элемент управления, так как использование моделей зависимостей в моделях представления не является типичным. Поэтому посмотрите на Routed Events . Метод Register () для свойства зависимостей имеет переопределение, которое принимает обработчик, который будет вызываться при изменении свойства. Вы можете вызвать пользовательское перенаправленное событие из этого обработчика. Потребители вашего пользовательского элемента управления могут подписаться на это перенаправленное событие, используя стандартные механизмы.

...