0
我在顯示ListView和DataGrids(作爲項目模板)時遇到了一些麻煩。問題是DataGrid中的列寬變得不正確,不能伸展以填充整個控件寬度。ListView中的DataGrid作爲項目模板
代碼:
<Window x:Class="WpfTest1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfTest1"
xmlns:system="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<x:Array x:Key="ListViewItems"
Type="{x:Type system:String}">
<system:String>1</system:String>
<system:String>2</system:String>
</x:Array>
<x:Array x:Key="DataGridItems"
Type="{x:Type system:String}">
<system:String>1</system:String>
<system:String>2</system:String>
<system:String>3</system:String>
</x:Array>
<DataTemplate x:Key="TemplateWidthDataGrid">
<DataGrid ItemsSource="{StaticResource DataGridItems}">
<DataGrid.Columns>
<DataGridTextColumn Header="Column1"
Width="*" />
<DataGridTextColumn Header="Column2"
Width="*" />
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</Window.Resources>
<Grid>
<ListView ItemTemplate="{StaticResource TemplateWidthDataGrid}"
ItemsSource="{StaticResource ListViewItems}" />
</Grid>
</Window>
我怎樣才能列,以填補在這種情況下,控制寬度是多少?
修訂
繼Ciccio的答案我已經設置了HorizontalContentAlignment
酒店在ListViewItem的。
<ListView ItemTemplate="{StaticResource TemplateWithDataGrid}"
ItemsSource="{StaticResource ListViewItems}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment"
Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
(我也不得不設置AutoGenerateColumns="False"
爲DataGrid
)
與同DataGrid
把ListView
這樣的外比較:
<Grid>
<DataGrid ItemsSource="{StaticResource DataGridItems}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Column1"
Width="*" />
<DataGridTextColumn Header="Column2"
Width="*" />
</DataGrid.Columns>
</DataGrid>
</Grid>
感謝您的回覆! HorizontalContentAlignment在DataGrid上產生一些效果,但列的寬度仍然不正確。查看更新的問題。 – koxy
@koxy我編輯了我的答案,現在它應該可以工作。 – CiccioRocca
它的工作,謝謝!另一個問題是,當我調整窗口大小時,水平滾動條出現並消失的故障。我認爲一定有辦法用HorizontalScrollBarVisibility以某種方式禁用它 – koxy