【发布时间】:2022-01-13 17:10:05
【问题描述】:
我第一次使用 ListView 时遇到问题。我的自定义项目(当前)应该有 2 行 3 列,每列包含一个标签(第一列宽度 =“自动”),一个文本框(填充第二列(用 =“”或宽度 =“100") 和第三列中的按钮 (width="Auto")
不幸的是,第二列无法缩放以使用完整的 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>
【问题讨论】:
-
除非你设置 ListView 的 View 属性,否则最好使用更简单的 ListBox 基类。
-
感谢您的提示。你当然是对的。视图尚未设置,因为它们正在准备中。
标签: c# wpf wpf-grid wpf-listview