将UI元素分配给XAML中的属性

时间:2018-01-28 07:52:29

标签: c# xaml uwp

我尝试使用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控件绑定到属性?

1 个答案:

答案 0 :(得分:-1)

我自己发现了这个错误:

首先确保您的班级继承自DependencyObject

接下来在DependencyProperty

上创建一个OnchangeEvent
    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;
}