動的フィールドジェネレーターでMVVMモデルを使用しています。このモデルでは、フィールドがデータベースから取得されます。これは、フォームの種類によって必要なフィールド(TextBox / TextBlock、ComboBoxなど)が異なるためです。問題は、辞書から値を取得してフォームのTextBlockに表示しようとしているのですが、取得したキーをバインドして値を表示する方法がわかりません。
現在、私は次のことを行っています。
TextBlock textBlock = new TextBlock();
textBlock.SetBinding(TextBlock.TextProperty, createFieldBinding(myPropertyName);
次のバインド方法を使用します。
private Binding createFieldBinding(string fieldName) {
Binding binding = new Binding(fieldName);
binding.Source = this.DataContext;
binding.UpdateSourceTrigger = UpdateSourceTrigger.LostFocus;
return binding;
}
Score
ViewModelのプロパティにマップするのようなものを渡す場合Score
、どのようにディクショナリキーにバインドしてその値を取得しますか?
myDictionaryProperty[myDictionaryKey]
可能であれば、のようなものにバインドできるようにしたいと思います。
例:以下は、PlayerScore
IDが1のforPlayerを生成します。ここPlayerScore
でaDictionary<int, int>
とPlayerID
はint
。です。
<TextBlock Name="textBlockA" Text="{Binding PlayerScore[1]} />