Je veux prendre une collection d'objets et la lier à un StackPanel donc si la collection a 4 éléments, à l'intérieur du panneau de la pile qui devrait produire 4 boutons, disons.Lier Collection à StackPanel
J'ai essayé cela ... Mais je ne pense pas que ce soit la bonne approche de toute façon. J'ai utilisé DataTemplated pour faire ce type d'idée dans le passé .. s'il vous plaît corrigez-moi si je me trompe.
Voici mon modèle faux
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; }
}
}
Dans le code, je mets le DataContext comme ça ...
// 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;
Et le XAML
<StackPanel x:Name="tStack">
<ItemsControl ItemsSource="{Binding Nodes}">
<ItemsControl.Template>
<ControlTemplate>
<Button Content="{Binding ItemName}"/>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl>
</StackPanel>
IT lie mais au lieu de 4 boutons je reçois seulement un bouton ....
Idées?
C'était exactement ce qu'il me fallait. Je vous remercie. – Trevor
Ce n'est pas toujours nécessaire, mais pour d'autres personnalisations, vous devez définir la propriété "IsItemsHost" sur StackPanel. – MatrixManAtYrService
Où définissez-vous 'ItemsSource'? Ce code XAML est-il entouré d'un ' '? –
IAbstract