有什么方法可以制作WPF中所需的自定义属性吗?
我的意思是当我在设计器中的自定义属性未填充时出现错误消息之类的东西? 例如:必需="真/假">
我的自定义属性定义:
public static readonly DependencyProperty AaFunctionalUnitNameProp;
[Category(VsCategoryName.AaObjectInfo)]
[Description(VsPropertyDescription.FunctionalUnitName)]
public string AaFunctionalUnitName
{
get => (string)GetValue(AaFunctionalUnitNameProp);
set => SetValue(AaFunctionalUnitNameProp, value);
}
没有开箱即用的功能可以做到这一点,但是您可以分配一个无效的(根据您的定义)默认值,并在OnInitialized
事件中当它仍然是默认值时抛出异常(当然,只有当不在设计模式下时)。
例:
public class CustomControl : Control
{
public static readonly DependencyProperty RequiredPropertyProperty = DependencyProperty.Register(
"RequiredProperty", typeof(int), typeof(CustomControl), new PropertyMetadata(int.MinValue));
public int RequiredProperty
{
get { return (int) GetValue(RequiredPropertyProperty); }
set { SetValue(RequiredPropertyProperty, value); }
}
protected override void OnInitialized(EventArgs e)
{
if(RequiredProperty == int.MinValue)
if(!DesignerProperties.GetIsInDesignMode(this))
throw new Exception("RequiredProperty must be explicitly set!");
base.OnInitialized(e);
}
}