0

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

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

我在属性更改事件处理程序中获得目标值,它为空。但我将它设置在 XAML 中。为什么它是空的?

谢谢。

4

1 回答 1

1

直到在加载 UI 过程的后期才会发生绑定,因此在应用您的本地值“true”时,尚未评估绑定。您需要将 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
        });
    }
于 2010-07-23T00:00:28.943 回答