「Translate」という名前の添付プロパティがあります。プロパティを次のように設定します。
<Label Target="{Binding ElementName=UserName}"
Content="User Name"
Extensions.Translate="true"/>
プロパティ変更イベントハンドラーでターゲット値を取得しましたが、nullです。しかし、私はそれをXAMLで設定しました。なぜnullなのですか?
ありがとう。
「Translate」という名前の添付プロパティがあります。プロパティを次のように設定します。
<Label Target="{Binding ElementName=UserName}"
Content="User Name"
Extensions.Translate="true"/>
プロパティ変更イベントハンドラーでターゲット値を取得しましたが、nullです。しかし、私はそれをXAMLで設定しました。なぜnullなのですか?
ありがとう。
バインディングは、UIをロードするプロセスの後半まで発生しないため、「true」のローカル値が適用されている時点では、バインディングはまだ評価されていません。バインディングが更新されるまで、ターゲット値のチェックを延期する必要があります。これにより、TranslatePropertyChangedハンドラーを開始できます。
Label label = dObj as Label;
if (BindingOperations.IsDataBound(label, Label.TargetProperty))
{
Binding.AddTargetUpdatedHandler(label, (sender, args) =>
{
UIElement element = label.Target;
// do something with element
});
}