我正在为这种情况寻找解决方案 -
我需要实现一项功能,允许用户向canvas
(WPF,自定义和第三方)添加各种控件,然后选择其中任何一个并修改PropertyGrid
中的某些属性(更改需求)在UI中反映出来。)
我不想暴露任何控件的所有属性,只有其中一些(与最终用户相关);除此之外,还有一些属性对于所有控件都是常见的,例如:标题,值(值将绑定到控件的某些属性,例如TextBox
的文本和Label
的内容)等。
我正在考虑将所有常见属性放在一个地方。
我感到困惑的事情 -
如何创建此类基类,是否使用UserControl
或自定义控件?
如何在Control,基类属性和PropertyGrid
之间进行绑定?
我会向PropertyGrid
公开哪种类型的对象?
在这种情况下应该遵循什么方法,任何类型的输入都会有所帮助。
答案 0 :(得分:0)
也许你应该从这本书开始WPF Control Development Unleashed。
1)自定义控制应该更合适
2)对于绑定 - 您应该了解有关TemplateBinding,RelativeSources绑定等的更多信息,
3)您的财产可以是普通财产或依赖财产。它们都可以在属性网格中进行编辑。如果你的暴露属性是可绑定的,显然它应该是dp。如果公开属性(表示具有公共访问说明符的属性),则足以使其在属性网格中可用。
HTH