Я хочу взять коллекцию объектов и привязать их к StackPanel, так что в основном, если коллекция имеет 4 элемента, внутри панели стека, которая должна выпустить 4 кнопки, можно сказать.
Я пробовал это... Но я не думаю, что это правильный подход. Я использовал DataTemplated, чтобы сделать этот тип идеи в прошлом.. пожалуйста, поправьте меня, если я ошибаюсь.
Вот моя поддельная модель
public class MockModel
{
public ObservableCollection<MockNode> Nodes;
public MockModel()
{
Nodes = new ObservableCollection<MockNode>();
}
}
public class MockNode
{
public MockNode()
{
}
private string itemname;
public string ItemName
{
get { return this.itemname; }
set { this.itemname = value; }
}
}
В коде я устанавливаю DataContext следующим образом:
// Init Model
MockModel myModel = new MockModel();
for (int i = 0; i < 4; i++)
{
MockNode mn = new MockNode();
mn.ItemName = String.Format("Node {0}", i);
myModel.Nodes.Add(mn);
}
// Set DataContext for StackPanel
Stack.DataContext = myModel.Nodes;
И xaml
<StackPanel x:Name="tStack">
<ItemsControl ItemsSource="{Binding Nodes}">
<ItemsControl.Template>
<ControlTemplate>
<Button Content="{Binding ItemName}"/>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl>
</StackPanel>
IT действительно связывается, но вместо 4 кнопок я получаю только одну кнопку....
Идеи?