Ich möchte eine Sammlung von Objekten nehmen und sie an ein StackPanel binden, also im Grunde, wenn die Sammlung 4 Elemente hat, innerhalb des Stack Panels, das 4 Buttons erzeugen soll.Bind Collection zu StackPanel
Ich habe das versucht ... Aber ich denke nicht, dass es der richtige Ansatz sowieso ist. Ich habe DataTemplated verwendet, um diese Art von Idee in der Vergangenheit zu machen. Bitte korrigieren Sie mich, wenn ich falsch liege.
Hier ist mein gefälschtes Modell
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; }
}
}
In Code, den ich die Datacontext wie folgt festgelegt ...
// 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;
Und die XAML
<StackPanel x:Name="tStack">
<ItemsControl ItemsSource="{Binding Nodes}">
<ItemsControl.Template>
<ControlTemplate>
<Button Content="{Binding ItemName}"/>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl>
</StackPanel>
Es bindet aber anstelle von 4 Tasten bekomme ich nur eine Taste ....
Ideen?
Das war genau das, was ich brauchte. Vielen Dank. – Trevor
Es ist nicht immer notwendig, aber für einige weitere Anpassungen müssen Sie die "IsItemsHost" -Eigenschaft auf StackPanel setzen. – MatrixManAtYrService
Wo setzen Sie 'ItemsSource'? Ist dieser XAML in eine ' '' Hülle verpackt? –
IAbstract