好吧,對不起我以前的混亂。如何分配ItemsSource屬性
的情況是這樣的: 我有兩個自定義對象定義如下: 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;
}
}
我也有一個視圖模型爲簡單起見使用定義了一些數據這兩個對象如下: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})
})
};
現在我有以下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>
我分配MainObjectIC的的ItemsSource在後面的代碼如下所示:
ViewModel.VM dc = new ViewModel.VM();
public MainWindow()
{
InitializeComponent();
DataContext = dc;
MainObjectIC.ItemsSource = dc.VMList;
}
我也想給的ItemsSource分配給SubObjectIC,但要做到這一點我必須得到那個ItemsControl對象。這就是我想要實現的。
從我的理解可能是一個非常非常糟糕的,無用的從後面的代碼分配ItemsSource屬性。
我認爲綁定「孩子」集合的相對來源應該有效。我只是爲了找到祖先類型的窗口,但我認爲它會允許更多的類型。 –
有'{綁定...}'綁定所有標記。爲什麼用於'RelicItemsSource'的ItemsSource不能被xaml綁定? – ASh
是的,但我不知道如何去做,因爲RelicItemsSource應該依賴綁定到ComponentsItemsSource的Object。另外我想我需要將DataContext綁定到'this'而不是我自己的客體對象。 –