hav*_*dhu 8 c# wpf grid listview datatemplate
我有一个ListView,它有一个基于网格的数据模板.xaml如下:
<ListView ItemsSource="{Binding SomeItemSource}" HorizontalAlignment="Stretch" Height="281">
<ListView.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch" Margin="3" Width="Auto">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<!-- Grid content here -->
<TextBlock Text="SomeTextbox"
Margin="5,5,0,0"/>
<TextBox Grid.Column="1"
Margin="0,5,0,0"
Text="{Binding SomeProperty, Mode=TwoWay}"
HorizontalAlignment="Left"
Width="90"/>
<TextBlock Text="AnotherText"
Grid.Column="0"
Grid.Row="1"
Margin="5,5,0,0"/>
<TextBox Grid.Column="1" Grid.Row="1"
Margin="0,5,0,0"
Text="{Binding AnotherProperty, Mode=TwoWay}"
HorizontalAlignment="Stretch"
Width="300"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
我想要的是,网格填充(拉伸)父ListView的整个水平宽度,但它当前包装到其内容总和的宽度.我怎样才能实现我想要的行为?
dko*_*ozl 20
你需要设置ListViewItem.HorizontalContentAlignment为Stretch.尝试将此添加到您的ListView定义中:
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)