私は複数のコレクションを持つクラスを持っていますが、これらのコレクションはお互いに依存しています。 (DataTable
のColumns
とRows
と考えてください)。 私が達成したいのは、DataGrid
のDataContext
を自分のクラスに設定し、列のバインディングパスを最初のコレクション(DataTable.Column
)の項目に設定できることです。 DataGrid
には、2番目のコレクションのアイテムのリストが表示されます。 (DataTable.Rows
)バインディングパスをリダイレクトする方法は?
public class MyClass
{
public List<object> Collection1 { get; set; }
public List<List<object>> Collection2 { get; set; }
public void AddBinding()
{
var myClass = new MyClass()
{
Collection1 = new List<object>
{
"Item1",
"Item2",
"Item3",
"Item4",
},
Collection2 = new List<List<object>>
{
new List<object>
{
"Value1 linked to Item1",
"Value2 linked to Item2",
"Value3 linked to Item3",
"Value4 linked to Item4",
},
new List<object>
{
"Value5 linked to Item1",
"Value6 linked to Item2",
"Value7 linked to Item3",
"Value8 linked to Item4",
},
}
};
var grid = new DataGrid();
grid.DataContext = myClass;
grid.Columns.Add(new DataGridTextColumn()
{
Binding = new Binding("Item1")
});
grid.Columns.Add(new DataGridTextColumn()
{
Binding = new Binding("Item2")
});
grid.Columns.Add(new DataGridTextColumn()
{
Binding = new Binding("Item3")
});
grid.Columns.Add(new DataGridTextColumn()
{
Binding = new Binding("Item4")
});
}
}
これは可能でしょうか?誰でもこれを達成する方法を知っていますか?
からバインディングとして列の値を設定し、「これを達成するためにどのように?」 - このデータ構造体をDataTableに変換し、ItemsSourceとしてDataTable.DefaultViewを使用しますか? – ASh
PCLでDataTableに問題が発生しており、カスタム実装が必要なため、これは不可能です。 – Jownster