附属物问题

时间:2010-07-22 12:40:04

标签: wpf attached-properties

我有一个名为“翻译”的附属物。我设置了这样的属性:

<Label  Target="{Binding ElementName=UserName}" 
        Content="User Name"
        Extensions.Translate="true"/>

我在属性更改事件处理程序中获取Target值,它为null。但是我把它设置在XAML中。为什么它是空的?

感谢。

1 个答案:

答案 0 :(得分:1)

直到稍后在加载UI的过程中才会发生绑定,因此在应用本地值“true”时,尚未评估Binding。您需要推迟检查Target值,直到更新Binding之后。这应该让你开始使用Translate PropertyChanged处理程序:

    Label label = dObj as Label;
    if (BindingOperations.IsDataBound(label, Label.TargetProperty))
    {
        Binding.AddTargetUpdatedHandler(label, (sender, args) =>
        {
            UIElement element = label.Target;
            // do something with element
        });
    }