0
我有一个名为“翻译”的附加属性。我设置这样的属性:附加属性问题
<Label Target="{Binding ElementName=UserName}"
Content="User Name"
Extensions.Translate="true"/>
我在属性更改的事件处理程序中获得目标值,它为空。但我将其设置在XAML中。为什么它是空的?
谢谢。
我有一个名为“翻译”的附加属性。我设置这样的属性:附加属性问题
<Label Target="{Binding ElementName=UserName}"
Content="User Name"
Extensions.Translate="true"/>
我在属性更改的事件处理程序中获得目标值,它为空。但我将其设置在XAML中。为什么它是空的?
谢谢。
绑定不会发生在加载UI的过程中,因此在您的本地值为“true”的情况下,绑定尚未进行评估。您需要推迟对目标值的检查,直到绑定更新完毕。这应该让你开始在翻译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
});
}
非常好的答案,谢谢。 – frameworkninja 2010-08-02 07:26:05