2012-01-25 9 views
0

xamlからプロパティ値を変更することはできますか?xamlから値を変更することはできますか?

我々は今すでに

public class MyUserControl : UserControl 
{ 
    ... 
    public SomeClass MainWindow 
    { 
     get 
     { 
       return _someClass ?? (_someClass = new SomeClass();) 
     } 
    } 
} 

初期化されたプロパティを持つユーザーコントロールを持っている想像し、それは、XAMLからそれを初期化せずに工assのプロパティを変更し、アニメーションせずにすることは可能でしょうか?

なぜxamlで構文を書くことができないのですか<UserControl.MainWindow.Property>

答えて

1

プロパティにセッターを追加し、XAMLが必要に応じて独自のSomeClassを作成できるようにします。これは通常は通常行われます。

XAMLは、宣言型言語であり、それは完全またはそのような何かをチューリングことしようとしない、それは単にオブジェクトの作成を説明しています。

もちろん、extreme solutionがあります。でも、しないでください。あなたのために、そして誰もが他の人の:)

EDIT:

別の解決策は、ユーザーコントロールに新しいプロパティを作成すること、および工ass(set{ this._someClass.someProperty = value; })のプロパティでこのプロパティを同期させることができます。 UserControlのXAML宣言でこのプロパティを設定すると、変更は_someClassメンバに伝播されます。

ラップされたプロパティにバインドする場合は、もちろん、ラッパープロパティは依存関係プロパティでなければなりません。

+0

小銭の値を変更する方法はありませんか? xamlでコードを書くのは良い解決策ではない、私はUserControl BEで同じことをすることができる、ただ興味があるxamlから他の方法がある、アニメーションがこれをやっているのを見つけたが、別の解決策を探す –

+0

@ArsenMkrt編集を見よ。 –

+0

投稿してくれてありがとう、私はあなたが正しいと思う、本当に他の方法はないが、私は財産に価値を与えることができる限り、自然な財産の価値を与える能力を持つことが論理的であるため、 –

0

1つ、値を変更するにはセットが必要です。 2つ、それにバインドするだけでXAMLで2つのことができます。

+0

SomeClass @BalamBalamへの参照を変更したくない、セッターを持つSomeClassのプロパティを変更したい –

+0

バインディングパスを使用してプロパティ名を参照しようとしましたか? – Paparazzi

+0

私はtiがそのプロパティにバインドしないようにしたい、例えばxamlから静的な値を与えたい。 –

関連する問題