Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可观测堆垛板_C#_Wpf - Fatal编程技术网

C# 可观测堆垛板

C# 可观测堆垛板,c#,wpf,C#,Wpf,我需要对将成为我的列的列表框进行observecollection,并对将成为我的列表框任务的按钮进行observecollection 问题是我创建了一个水平堆叠面板 <StackPanel Name="panel" Orientation="Horizontal"> </StackPanel> 这就是我得到的结果: 这正是我需要的,除了我需要绑定StackPanel问题是不可能绑定它,我无法使用水平列表框实现相同的结果,出于某种原因,当我添加垂直列表框,然后在其中

我需要对将成为我的列的列表框进行observecollection,并对将成为我的列表框任务的按钮进行observecollection

问题是我创建了一个水平堆叠面板

<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 }
}