WPF :: Пользовательский элемент управления, как запустить метод, когда пользователь меняет свойство - PullRequest
1 голос
/ 11 марта 2011

Здравствуйте. Я создал пользовательский класс элемента управления, производный от Grid, так есть ли функция, которую нужно переопределить, когда пользователь изменяет свойство?например, если у меня есть свойство Count, как я могу узнать, когда пользователь меняет свойство count?

Спасибо большое

EDIT

i 'делаю некоторый прогресс

защищенное переопределение void OnPropertyChanged (System.Windows.DependencyPropertyChangedEventArgs e) {

}

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

Ответы [ 2 ]

4 голосов
/ 11 марта 2011

Если это свойство зависимости, тогда используйте:

public static readonly DependencyProperty CountProperty =
                DependencyProperty.Register("Count", typeof(int), typeof(YourClass), new UIPropertyMetadata(OnCountChanged));

public int Value
{
       get { return (int)GetValue(CountProperty); }
       set { SetValue(CountProperty, value); }
}

private static void OnCountChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
       YourClass cp = obj as YourClass;
       MethodToExecute();
}
3 голосов
/ 11 марта 2011

Вы можете подписаться на событие NotifyPropertyChanged:

в вашем конструкторе поместите следующее:

this.NotifyPropertyChanged += (sender, eventargs) =>
{
   if (eventargs.PropertyName == "Count")
      this.CountChanged();
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...