1

DataContextとしてビューモデル(CharacterViewModel)を持つViewCharacterページがあり、そのCharacterViewModelには、ListBoxがItemSourceとして使用しているWeaponViewModelのObservableCollectionがあります。ListBoxのDataTemplateには、親ページのビューモデルのObservableCollectionのWeaponViewModels用に設計されたUserControlが含まれています。UserControlのボタンのCommandParameterを、親ページのビューモデル(CharacterViewModel)のプロパティにバインドする必要があります。私は{Binding DataContext.TargetProperty, RelativeSource={RelativeSource TemplatedParent}}成功せずに使用しようとしましたが、すべてのMVVMパターンを完全に壊さずに何をすべきか途方に暮れています。

4

1 に答える 1

0

Windows Phone 7 には、相対ソース バインドがありません。ここで Silverlight の実装を作成しました。

http://www.scottlogic.co.uk/blog/colin/2009/02/relativesource-binding-in-silverlight/

しかし、パフォーマンスが重要な WP7 では、使用を避けます。

代わりに、 と の関係CharacterViewModelWeaponViewModel双方向にすることをお勧めします。つまり、所有する への参照となるParentプロパティを追加します。その後、このプロパティを介してプロパティにバインドできます。WeaponViewModelCharacterViewModelCharacterViewModel

于 2012-09-05T05:12:04.483 に答える