获取WPF ListView来填充enitre列

时间:2019-01-26 11:01:11

标签: .net wpf xaml listview

我对WPF很陌生。我要转到一个窗口,在该窗口的左侧列上,数据输入显示在ListView上,而数据输入则显示在其右侧的列上。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="98*"/>
        <ColumnDefinition Width="195*" />
    </Grid.ColumnDefinitions>
    <StackPanel Grid.Column="0">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="1*"/>
                <RowDefinition Height="2*"/>
            </Grid.RowDefinitions>

            <StackPanel Orientation="Vertical" Grid.Row="0">

            <Button Name="SaveButton" Content="Save Revision File" />
            <Button Name="DeleteSelected" Content="Delete Selected" Click="DeleteSelected_Click" IsEnabled="False"/>
            </StackPanel>
            <ListView Grid.Row="1" Name="ToAppendListView" SelectionChanged="ToAppendListView_Selected" VerticalAlignment="Stretch" VerticalContentAlignment="Stretch">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <WrapPanel>
                            <TextBlock Text="Look Cover Type: " />
                            <TextBlock Text="{Binding LookCoverTypeContent.Content}" FontWeight="Bold" />
                            <TextBlock Text=", " />
                            <TextBlock Text="Quiz Question: " />
                            <TextBlock Text="{Binding QuizContent.Content}" FontWeight="Bold" />
                            <TextBlock Text=", " />
                            <TextBlock Text="Flashcard Front: " />
                            <TextBlock Text="{Binding FlashCardContent.Content}" FontWeight="Bold" />
                        </WrapPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </Grid>
    </StackPanel>
    <StackPanel Grid.Column="2">
        <!-- Data Input -->
            </StackPanel>
        </Grid>
    </StackPanel>
</Grid>

我的问题是我无法获得ListView来填充左手列,因此它会动态地向下扩展并离开窗口,并且一个屏幕被填充,它将无法滚动,因此内容显示在窗口之外。

我尝试使用垂直对齐方式拉伸,但是这没有用。是否有办法确保ListView的位置是固定的,并且在屏幕填满后启用滚动? / p>

1 个答案:

答案 0 :(得分:0)

删除Column = 0 StackPanel:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="98*"/>
        <ColumnDefinition Width="195*" />
    </Grid.ColumnDefinitions>
    <Grid Grid.Column="0">

    </Grid>            
    <StackPanel Grid.Column="1">
       <!-- Data Input -->
    </StackPanel>
</Grid>

ListView上的VerticalAlignment="Stretch"可以使用。

我也对Column = 1(不是= 2)中的StackPanel感到怀疑。
关于内部的按钮。