0

「Translate」という名前の添付プロパティがあります。プロパティを次のように設定します。

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

プロパティ変更イベントハンドラーでターゲット値を取得しましたが、nullです。しかし、私はそれをXAMLで設定しました。なぜnullなのですか?

ありがとう。

4

1 に答える 1

1

バインディングは、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
        });
    }
于 2010-07-23T00:00:28.943 に答える