私はTextBlockを含むグリッドを持っています。グリッドのDataContextはタイプList<MyClass>
であり、Listの最初の要素のMyClass.MyPropertyプロパティにTextBlock.Textプロパティをバインドしたいと思います。私は次のようなものを試しました:Silverlightのリストへのデータバインド
<Grid x:Name="RootLayout">
<TextBlock Text="{Binding [0].MyProperty}" />
</Grid>
もちろん、それはうまくいきませんでした。これを行う正しい方法は何ですか?
編集:
私は試してみて、私の説明をより明確にするつもりです。グリッドには複数の要素があり、それぞれがリスト内の別の項目にバインドされています。項目は、GridViewまたはListBoxで実現できないカスタマイズされた方法でレイアウトされます。グリッド内の項目の1つはTextBlockです。そのTextプロパティをリストの最初の要素のプロパティにバインドしたいと思います。それを行う方法が分かれば、その知識を拡張して、グリッド内の他の要素にバインディングを追加することができます。
編集2:
は、判明私のコードは、Silverlightでうまく動作します。私のプロジェクトは実際にはWinRTプロジェクトですが、データバインディングは同じように動作するはずなので、Silverlightとしてタグ付けすると、より迅速な回答が得られるはずです。私はこれがWinRTのバグであると仮定していますので、私はちょうどそれのための回避策:(
最初の質問:すべてのアイテムを表示するか、最初の質問のみを表示しますか?すべてのアイテムが必要な場合は、ListまたはDataGrid、または複数のアイテムをサポートする他のコンテナ(ItemsSourceプロパティなど)が必要です。 –
@HiTech Magicすべてのアイテムが必要です。しかし、私が必要とするレイアウトはListBoxやDataGridではうまく動作しません。また、グリッド内の個々のアイテムごとにアニメーションを追加するので、さらに複雑になります。 –
もう一度読んで、私はあなたがここで何をしようとしているのかを明確に把握しているとは思えません。リスト内のすべての項目が必要ですが、リスト内の最初の項目のプロパティにのみTextBoxをバインドする必要があります。グリッド内の他のコントロールはリスト内の他の項目にバインドしますか?リストを反復処理し、リスト内の各項目のTextBoxにMyPropertyが表示されるようにするコントロールがありますか? – Zannjaminderson