我有一个名为“翻译”的附属物。我设置了这样的属性:
<Label Target="{Binding ElementName=UserName}"
Content="User Name"
Extensions.Translate="true"/>
我在属性更改事件处理程序中获取Target值,它为null。但是我把它设置在XAML中。为什么它是空的?
感谢。
答案 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
});
}