我是否需要用户控件上所有基本属性的依赖项属性?

时间:2016-09-10 01:25:53

标签: c# wpf mvvm user-controls dependency-properties

我目前正在编写我的第一个用户控件,它由堆栈面板中的标签和文本框组成,如下所示:

request

这在设置页面中最有用,因为它将在几个不同的设置中重复使用。对于这些设置中的每一个,我将要(至少)设置宽度,高度,验证规则和错误模板属性。至于文本本身,我已经为标签和文本框创建了一个依赖属性(正如你在我上面的代码片段中看到的那样)。

我的问题是:我是否需要为我刚刚提到的所有属性创建依赖属性,我想在实际使用用户控件时设置这些属性?这似乎是多余的工作(因为它们已经存在于文本框中,基本上它们只是将我的用户控件的属性重定向到文本框的同名属性)?如果我想在文本框中使用更多属性(例如,AcceptsReturn等),这就更有用了。

1 个答案:

答案 0 :(得分:2)

如果您决定从TextBox而不是UserControl派生,可以保存冗余工作 - 只需将您的控件视为“标记文本框”,您需要做的就是从{{{ 1}}并添加所需的依赖项属性以适应标签。当然,对于更复杂的用户控件来说,情况并非如此,但在您的情况下似乎没问题。

这样做的缺点是,您必须使用TextBox的默认控件模板并使用它来添加标签,这可能有点棘手。

无论哪种方式,我建议您查看MSDN上的Control Authoring Overview页面,这在WPF中编写第一个控件时非常有用。