实施 INotifyPropertyChanged

implementing INotifyPropertyChanged

我正在尝试使用 wpf 工具包扩展向导控件在 wpf 中制作向导。

除非满足某些条件,否则我需要阻止用户进入下一页。

This answer 另一个问题建议将 CanSelectNextPage 属性 绑定到当前页面后面的代码中的布尔值 属性。

我在实施 INotifyPropertyChanged 时遇到问题。在上面链接的答案中,他的 MainWindow class 扩展了 INotifyPropertyChanged。这怎么可能? MainWindow class 难道不需要扩展 Window class 吗?

此外,INotifyPropertyChanged 位于哪个程序集? MSDN 说它在 System.ObjectModel.dll 中,我似乎没有...

他的MainWindow class implements INotifyPropertyChanged,在System.ComponentModel.

中找到

这篇 MSDN 文章应该解释如何使用它:https://msdn.microsoft.com/en-us/library/vstudio/system.componentmodel.inotifypropertychanged(v=vs.100).aspx

INotifyPropertyChanged 将在给定的 属性 更改时通知客户,例如您的 UI。您可以将 'next' 按钮的可见性绑定到 class 的布尔值 属性,并在设置所有其他属性后将布尔值 属性 设置为 true。

编辑:我应该补充一点,为了将布尔值绑定到按钮的可见性,您需要使用 IValueConverter。

首先,INotifyPropertyChanged 是一个接口,而不是 class。因此,虽然 class 只能从单个 class 继承(这里是 Window class),但它可以实现多个接口。

接口本身位于 System.ComponentModel 命名空间的 System.dll 程序集中。