代码之家  ›  专栏  ›  技术社区  ›  Reddog

绑定到WinForms中WPF宿主控件的DependencyProperty

  •  3
  • Reddog  · 技术社区  · 15 年前

    我有一个WinForms应用程序,其中包含一些由WPF用户控件托管的元素(使用ElementHost)。

    我希望能够绑定WinForm的控件属性( Button.Enabled )到托管WPF用户控件的自定义DependencyProperty( SearchResults.IsAccountSelected ).

    是否可以将System.Windows.Forms.Binding绑定到DependencyProperty管理的属性?

    另外,因为我知道System.Windows.Forms.Binding监视 INotifyPropertyChanged.PropertyChanged

    1 回复  |  直到 15 年前
        1
  •  1
  •   Ray Burns    15 年前

    DependencyObject 无法实现 INotifyPropertyChanged ,因此,如果采用此路径,则必须手动实现PropertyChanged事件的发送。

    幸运的是 依赖对象 有没有 OnPropertyChanged InotifyProperty已更改 在你的 -派生类很普通,例如:

    public class MyClass : HeaderedContentControl, INotifyPropertyChanged
    {
      protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
      {
        var handler = PropertyChanged;
        if(handler!=null) handler(this, new PropertyChangedEventArgs(e.Property.Name));
        base.OnPropertyChanged(e);
      }
      public event PropertyChangedEventHandler PropertyChanged;
    }
    

    推荐文章