Nesnelerin bir koleksiyonunu almak ve StackPanel'e bağlamak istiyorum, yani koleksiyonun 4 unsuru varsa, yığın panelinin içinde 4 düğme üretmesi gerektiğini söyler.Bind Collection to StackPanel
Bunu denedim ... Ama yine de doğru yaklaşımını düşünmüyorum. Geçmişte bu tür bir fikir yapmak için DataTemplated'i kullandım. Lütfen yanılıyorsam beni düzeltin. İşte
benim sahte Böyle DataContext'i ayarlamak kodunda modeli
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; }
}
}
...
// 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;
Ve xaml olan
<StackPanel x:Name="tStack">
<ItemsControl ItemsSource="{Binding Nodes}">
<ItemsControl.Template>
<ControlTemplate>
<Button Content="{Binding ItemName}"/>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl>
</StackPanel>
IT bindim ama 4 düğme yerine sadece bir düğme aldım ....
Fikirler? Ben kullanarak ... bunu çözmüş olmasının
Bu benim ihtiyacım olan şeydi ... sorununu çözdü. Teşekkür ederim. – Trevor
Her zaman gerekli değil, ancak bazı özelleştirmeler için StackPanel'de "IsItemsHost" özelliğini ayarlamanız gerekecek. – MatrixManAtYrService
'ItemsSource' öğesini nerede ayarlıyorsunuz? Bu XAML bir " " ile mi sarılmış? –
IAbstract