2

私はMVVMを初めて使用するので、私のばかげたことを許してください。

カスタム ユーザー コントロールの 6 つのインスタンスを含むグリッドがあります。

userCtrl1、userCtrl2、userCtrl3、userCtrl4 など。

「playerInfo」というビューモデル クラスを作成し、ユーザー コントロールのデータ コンテキストを設定しました。

私の質問は、ビューモデルで名前を参照する方法です。

使用しているサードパーティ ライブラリのリストを参照するには、インデックス ( userCtrl "4" ) を取得する必要があります。

奇妙に聞こえますが、これが MVVM パターンに違反しているかどうかはわかりません。

よろしくお願いします!

4

1 に答える 1

2

別の解決策 (「リストを参照するインデックス」が userCtrl# 番号と等しく、レイアウトが複雑すぎない場合):

  1. ObservableCollection<PlayerInfo> Playersビュー モデルにプロパティを作成します。
  2. ビューItemsControlに入れ、にバインドしPlayersます。レイアウトをカスタマイズしたい場合は、そのItemsPanelテンプレートを変更できます。
  3. を作成DataTemplateして設定しDataTypeます{x:Type PlayerInfo}。ユーザーコントロールをそれに入れ、にバインドし{Binding}ます。
  4. ビューモデルにインデックスが必要な場合は、Players.IndexOfメソッドを使用できます。
于 2013-07-07T03:01:54.133 に答える