いくつかのオプション: 1)DataTemplate内のバインディングで、ElementNameを使用してソースを親に設定し、OneWayToSourceを使用してバインドします。これは、バインディングターゲット(DataTemplate内の要素)からバインディングソース(親コントロール)に値を転送します 2)DataTemplateとコントロールの両方がバインドする共通オブジェクトを使用します。 DataTemplateはOneWayToSourceを使用してそれにバインドし、コントロールはOneWayでバインドします。リソースでもあり、XAMLからアクセスできます。 3)RelativeSourceとFindAncestorを使用します。 4)何らかの種類のルーテッドイベントを使用し、コントロールレベルで処理します。データテンプレートから、添付された動作(google it!)によって解凍されます。イベントはデータを配信し、イベントハンドラはコントロールの関連プロパティを設定します。
オプション1,3は、あなたが提案したものと似ています。オプション2,4は異なっています。エレガンスに関しては、オプション2を優先します。
さらに、すべてのソリューションの競合に注意してください。 DataTemplateが単一のコントロールの中に何度もインスタンス化されると、すべてのインスタンスはコントロールのプロパティを設定しようとします。エフェクトは最後に実行されたセット試行の影響を受け、オーダーを制御できない場合は問題が発生することがあります。
アレックス。
私はオプション2は、私の状況で本当に適しているとは思いません。 2つのことは、お互いを本当に知りません。オプション4は私にとっては最高の音ですが、イベントを処理してXAMLだけでプロパティを設定できますか?私はあなたができるとは思わなかった。 –