私の以前の混乱のため申し訳ありません。ItemsSourceプロパティの割り当て方法
状況はこれです: は、私は次のように定義された2つのカスタムオブジェクトを持っている: MainObject:
public class MainObject
{
private string mainObjectName;
public string MainObjectName { get { return mainObjectName; } }
private List<SubObject> subObjectData;
public List<SubObject> SubObjectData { get { return subObjectData; } }
public MainObject(string name, List<SubObject> objectData)
{
mainObjectName = name;
subObjectData = objectData;
}
}
サブオブジェクト:
public class SubObject
{
private string subObjectName;
public string SubObjectName { get { return subObjectName; } }
private List<int> integerData;
public List<int> IntegerData { get { return integerData; } }
public SubObject(string name, List<int> data)
{
subObjectName = name;
integerData = data;
}
}
私も簡単にするために使用していくつかのデータを定義するのviewmodelを持っていますこれら2つのオブジェクトは次のようになります。VM
public List<Model.MainObject> VMList = new List<Model.MainObject>()
{
new Model.MainObject("MainItem1", new List<Model.SubObject>()
{
new Model.SubObject("SubItem1", new List<int>() { 1,6,3}),
new Model.SubObject("SubItem2", new List<int>() { 5,2,9})
}),
new Model.MainObject("MainItem2", new List<Model.SubObject>()
{
new Model.SubObject("SubItem1", new List<int>() { 0,3,1}),
new Model.SubObject("SubItem2", new List<int>() { 7,5,2})
})
};
ViewModel.VM dc = new ViewModel.VM();
public MainWindow()
{
InitializeComponent();
DataContext = dc;
MainObjectIC.ItemsSource = dc.VMList;
}
私もSubObjectICへのItemsSourceを割り当てることが、私ということをしたい:は今、私はそうのような背後にあるコードでMainObjectICののItemsSourceを割り当て、次のUI
<Grid>
<ItemsControl Name="MainObjectIC">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding MainObjectName}"/>
<ItemsControl Name="SubObjectIC">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding SubObjectName}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
を持っていますそのItemsControlオブジェクトを取得する必要があります。そしてこれが私が達成しようとしていることです。
私が理解したところでは、コードソースからItemsSourceプロパティを割り当てることは非常に悪く無駄かもしれません。
"子"コレクションのバインディングの相対ソースが機能するはずです。私は祖先のタイプのウィンドウを見つけるためにこれを行っただけですが、もっと多くのタイプが可能になると思います。 –
マークアップ全体に '{Binding ...}'バインディングがあります。 'RelicItemsSource'のItemsSourceをなぜxamlにバインドできないのですか? – ASh
はい、RelicItemsSourceはComponentsItemsSourceにバインドされたオブジェクトに依存する必要があるので、私はそれを行う方法を手がかりにしていません。また、私は私の欲しいオブジェクトの代わりに 'this'にDataContextをバインドする必要があると思います。 –