XAML单独滚动列表框中的项目

时间:2014-02-04 16:14:04

标签: c# wpf xaml listbox

我有一种情况,我希望看到与另一个列表相关的项目队列。我想垂直排列父项,水平排列子项。到目前为止,我有以下内容:

家长:

    <ListBox x:Name="listResources" ItemsSource="{Binding Resources}" >
        <ListBox.ItemTemplate>
            <DataTemplate>
                <local:ResourceControl x:Name="resources" thisResource="{Binding Path=.}" Margin="2"></local:ResourceControl>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

我的孩子项目:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition></ColumnDefinition>
        <ColumnDefinition></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.Resources>
        <Style TargetType="ListBox">
            <Setter Property="ItemsPanel">
                <Setter.Value>
                    <ItemsPanelTemplate>
                        <StackPanel 
                            Orientation="Horizontal" 
                            VerticalAlignment="Center" 
                            HorizontalAlignment="Center"                                
                            Margin="3">
                        </StackPanel>
                    </ItemsPanelTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Grid.Resources>
    <StackPanel Grid.Column="0">
        <TextBlock FontSize="20" x:Name="labelResourceName" Text="{Binding ResourceName}"></TextBlock>
    </StackPanel>

    <ListBox Grid.Column="1" x:Name="listOperations" ItemsSource="{Binding Operations}" >
        <ListBox.ItemTemplate>                
            <DataTemplate>                                                     
                    <local:OperationControl x:Name="operations" thisOperation="{Binding Path=.}" Margin="2" ></local:OperationControl>                    
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>

这个效果相对较好,并且根据我的要求水平列出了我的子项目。问题是我需要能够单独滚动子项。正如它目前所写,我可以水平滚动,但所有子项目都滚动在一起。

我试图将父列表框包装在一个内部,但似乎也没有。

如何让列表框中的项目单独滚动而不是一起滚动?

1 个答案:

答案 0 :(得分:0)

我找到了这个问题的答案。问题是我没有为列表框定义宽度。一旦我向控件添加了宽度,滚动就能正常工作。