C# 可观测堆垛板
我需要对将成为我的列的列表框进行observecollection,并对将成为我的列表框任务的按钮进行observecollection 问题是我创建了一个水平堆叠面板C# 可观测堆垛板,c#,wpf,C#,Wpf,我需要对将成为我的列的列表框进行observecollection,并对将成为我的列表框任务的按钮进行observecollection 问题是我创建了一个水平堆叠面板 <StackPanel Name="panel" Orientation="Horizontal"> </StackPanel> 这就是我得到的结果: 这正是我需要的,除了我需要绑定StackPanel问题是不可能绑定它,我无法使用水平列表框实现相同的结果,出于某种原因,当我添加垂直列表框,然后在其中
<StackPanel Name="panel" Orientation="Horizontal">
</StackPanel>
这就是我得到的结果:
这正是我需要的,除了我需要绑定StackPanel问题是不可能绑定它,我无法使用水平列表框实现相同的结果,出于某种原因,当我添加垂直列表框,然后在其中添加按钮时,结果是:
以下是一个示例,说明如何更好地实现您想要做的事情,但使用
Xaml
中的ItemsControl
。这是通过绑定到ObservableCollection
并为集合中的每个项目创建列表框来实现的。然后将列表框
绑定到内部的可观察集合
,以显示每个单独的项目
<ItemsControl ItemsSource="{Binding MyCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding}" Width="100" Height="auto">
</ListBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
private observedcollection\u myCollection;
公共可观测集合MyCollection
{
获取{return\u myCollection;}
设置{u myCollection=value;NotifyPropertyChanged}
}
非常感谢你,它帮助了我@阿里克沙皮罗太棒了!如果它解决了你的问题,考虑点击滴答声将它标记为正确答案。是否可以为一个ListBox分配一个观察表,并使列表框成为集合内对象的逻辑父?我试图做的是,当我单击特定列表中的按钮时,我需要能够获取按钮中的ListBox。\u单击,我试图获取发件人的父级。您好,您可以使用帮助器方法或类在可视树中搜索ListBox类型的第一个父级。
<ItemsControl ItemsSource="{Binding MyCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding}" Width="100" Height="auto">
</ListBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
private ObservableCollection<ObservableCollection<string>> _myCollection;
public ObservableCollection<ObservableCollection<string>> MyCollection
{
get { return _myCollection; }
set { _myCollection = value; NotifyPropertyChanged }
}