我发现当我创建依赖属性时,大多数冲突与UserControl中的属性名称,例如背景,宽度等,所以我的策略是为我的所有内容添加前缀自定义属性“The”所以我有,例如</ p>
等
我尝试使用“new”关键字来消除警告,但这会在运行时导致冲突。
是否有人在自定义用户控件中为DependencyProperties提供更好的命名策略?
public partial class SmartForm : UserControl
{
public SmartForm()
{
InitializeComponent();
DataContext = this;
TheBackground = "#FFD700";
}
#region DependencyProperty: TheBackground
public string TheBackground
{
get
{
return (string)GetValue(TheBackgroundProperty);
}
set
{
SetValue(TheBackgroundProperty, value);
}
}
public static readonly DependencyProperty TheBackgroundProperty =
DependencyProperty.Register("TheBackground", typeof(string), typeof(SmartForm),
new FrameworkPropertyMetadata());
#endregion
}
答案 0 :(得分:5)
如果您的UserControl具有背景属性,为什么还要添加另一个?
这个新背景是什么背景? “该”?没有?那么它控制的背景是什么?
完成这句话:“这是XXXX控件的背景颜色。”
属性名称现在应为XXXXBackground。
答案 1 :(得分:0)
你的意思是你想要一个覆盖?
在我的情况下,我不将Width作为DepedencyProperty
在我的自定义控件中我有:
public double Width
{
get
{
if (_backgroundImage != null)
return _backgroundImage.Width;
else
return double.NaN;
}
set
{
if (_backgroundImage != null)
_backgroundImage.Width = value;
}
}
编译器向我显示警告,但一切似乎都有效。