我很难让Dependency Properties工作而不会导致编译错误。
我有一个名为TitleBar的usercontrol,它包含这个DependencyProperty:
public static readonly DependencyProperty TitleProperty = DependencyProperty.Register("Title", typeof(string), typeof(TitleBar), new PropertyMetadata(false));
public string Title
{
get
{
return (string)GetValue(TitleProperty);
}
set
{
SetValue(TitleProperty, value);
}
}
在我看来,在xaml:
<Components:TitleBar x:Name="customTitleBar" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3"/>
导致设计器/编译错误:
Cannot create an instance of "TitleBar". ... The invocation of the constructor on type 'TitleBar' that matches the specified binding constraints threw an exception. System.Exception {System.Windows.Markup.XamlParseException}
用户控件在没有DP的情况下完美运行。我做错了什么?
奇怪的是,当我实际将Title =“...”属性放入xaml时,它在设计器中起作用,直到我尝试编译它。从那时起,它给了我提到的错误。
答案 0 :(得分:2)
当属性类型为bool
时,您已将默认值指定为string
。
更改
new PropertyMetadata(false)
到
new PropertyMetadata(null)
答案 1 :(得分:2)
您的DependencyProperty
已string
但在PropertyMetadata
中您将默认值指定为false