添付プロパティのデフォルト値を設定したいのですが、そうすると次のようになります。
タイプ 'System.ArgumentException' の初回例外が WindowsBase.dll で発生しました
タイプ 'System.TypeInitializationException' の初回例外が Oef_AttDepProp.exe で発生しました
デフォルト値がなくても、問題なく動作します。これは私が使用したサンプルコードです:
public static readonly DependencyProperty IsEigenaarProperty = DependencyProperty.RegisterAttached(
"Eigenaar", typeof(clsPersoon), typeof(UIElement),
new UIPropertyMetadata(new clsPersoon("test", "test"), PropertyChanged));
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[Browsable(true)]
public clsPersoon Eigenaar
{
get
{
return _persoon;
}
set
{
_persoon = value;
}
}
public static void SetEigenaar(UIElement element, clsPersoon value)
{
element.SetValue(IsEigenaarProperty, value);
}
public static clsPersoon GetEigenaar(UIElement element)
{
return (clsPersoon)element.GetValue(IsEigenaarProperty);
}
private static void PropertyChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
{
if (obj is Window1)
((Window1)obj).Title = GetEigenaar(((Window1)obj)).ToString();
}
問題の原因と思われるのは「new clsPersoon("test", "test")」ですが、それは 2 文字列コンストラクタを持つ非常に単純なクラスにすぎません。
編集: window_load の代わりにクリック イベントを介してプロパティを設定しようとすると、次の innerException が発生します。