WPF :: Custom控制如何在用户更改属性时触发方法

时间:2011-03-11 15:06:02

标签: c# wpf

您好 我创建了一个从Grid派生的自定义控件类,那么当用户更改属性时是否有一个覆盖的函数?例如,如果我有一个名为Count的属性,我怎么知道用户何时更改count属性?

非常感谢

修改

我正在取得一些进展

  

protected override void OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs   E){

     

}

现在在我的设计器窗口中,当我更改属性时,自定义控件不会改变我必须运行代码并关闭它以查看设计器窗口的差异我该如何解决?

2 个答案:

答案 0 :(得分:4)

如果是依赖属性,则使用:

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();
}

答案 1 :(得分:3)

您可以订阅NotifyPropertyChanged事件:

在你的构造函数中输入以下内容:

this.NotifyPropertyChanged += (sender, eventargs) =>
{
   if (eventargs.PropertyName == "Count")
      this.CountChanged();
};