WPF绑定到我自己的属性

时间:2011-03-09 17:44:14

标签: wpf binding

我创建了自己的UserControl,其中有一些属性是根据某些东西计算的,我们称之为Result。现在,我想把这个控件放在Grid上,我有一些商务对象。我想将此对象中的属性绑定到我的属性Result。所以我做了这样的事情:

<MyControl Result="{Binding PropertyInObject}" ...

当然设置DataContext并且其他属性(wpf属性)的绑定正在起作用。但这个不是。 首先它发出一个异常,说我无法绑定到非依赖属性。所以我把它注册为一个。现在它没有给出异常但也没有完成工作。那我该怎么办?

2 个答案:

答案 0 :(得分:1)

  1. 您必须将UserControl中的Result属性设置为依赖项属性。这样,您就可以将任何值绑定到此属性。以下是如何实现自定义Dependency Prooperty
  2. 的示例
  3. 在业务对象中,您需要实现INotifyPropertyChanged,以便通知您的Result属性有关业务对象的任何更改。以下是如何实现INotifyPropertyChanged PropertyChanged event
  4. 的示例

答案 1 :(得分:0)

在进行计算后,实现INotifyPropertyChanged接口并引发PropertyChanged事件。然后默认情况下(twoway)将控件绑定到您的属性。

我会建议你学习这本书:Programming WPF.