0

我第一次使用 ListView 时遇到问题。我的自定义项目(当前)应该有 2 行 3 列,每列包含一个标签(第一列宽度 =“自动”),一个文本框(填充第二列(用 =“ ” 或宽度 =“100 ” 测试)和一个第三列中的按钮(宽度=“自动”)

不幸的是,第二列无法缩放以使用完整的 Listview 宽度,但其行为类似于 width="Auto"。

请注意,最初我在 DataTemplate 中使用 StackPanel 作为顶部控件并将其替换为网格,只是为了检查它是否可以解决问题。

在测试应用程序中直接在窗口中测试 DataTemplate Grid 可以按预期工作。

              <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Label Content="Input Paths"/>
                <ListView Grid.Row="1" ItemsSource="{Binding PathListAccess.PathList.PathList}">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <Grid>
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="*"/>
                                        <ColumnDefinition Width="Auto"/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="Auto"/>
                                        <RowDefinition Height="Auto"/>
                                    </Grid.RowDefinitions>
                                    <!--Row 0-->
                                    <Label Grid.Row="0" Grid.Column="0" Content="Input Directory:"/>
                                    <TextBox Grid.Row="0" Grid.Column="1" HorizontalAlignment="Stretch" Text="{Binding InputPath}"/>
                                    <Button Grid.Row="0" Grid.Column="2" Content="..."/>
                                    <!--Row 1-->
                                    <Label Grid.Row="1" Grid.Column="0" Content="Output Directory:"/>
                                    <TextBox Grid.Row="1" Grid.Column="1" HorizontalAlignment="Stretch" Text="{Binding OutputPath}"/>
                                </Grid>
                            </Grid>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </Grid>
4

1 回答 1

1

我认为问题在于默认ListView值为.HorizontalContentAlignmentLeft

尝试设置HorizontalContentAlignmentStretch

<ListView Grid.Row="1" ItemsSource="{Binding PathListAccess.PathList.PathList}"
          HorizontalContentAlignment="Stretch">
于 2021-12-08T19:02:23.630 回答