我尝试使用XAML
将UI元素分配给属性我已经构建了我的依赖属性:
public static readonly DependencyProperty OwnerProperty = DependencyProperty.Register
(
"Owner",
typeof(Panel),
typeof(Clock),
new PropertyMetadata(string.Empty)
);
public Panel Owner
{
get => owner;
set
{
owner = value;
...
}
}
我的XAML代码:
<Grid Background="White" x:Name="MainGrid"/>
<Page.Resources>
<local:Clock x:Key="Clock" Owner="{Binding ElementName=MainGrid}"/>
</Page.Resources>
启动程序时,我得到一个例外。不幸的是,调试器并没有告诉我哪个。
简而言之:如何使用XAML将UI控件绑定到属性?
答案 0 :(得分:-1)
我自己发现了这个错误:
首先确保您的班级继承自DependencyObject
接下来在DependencyProperty
public static readonly DependencyProperty OwnerProperty = DependencyProperty.Register
(
nameof(Owner),
typeof(Panel),
typeof(Clock),
new PropertyMetadata(null, OwnerChanged)
);
最后但并非最不重要的是实施OwnerChanged
:
private static void OwnerChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
((Clock)d).Owner = e.NewValue as Panel;
}