C# ListView:将自定义数据模板中的网格拉伸到最大宽度?
我想为我的C# ListView:将自定义数据模板中的网格拉伸到最大宽度?,c#,windows-runtime,windows-store-apps,winrt-xaml,C#,Windows Runtime,Windows Store Apps,Winrt Xaml,我想为我的列表视图创建一个自定义数据模板。 我有一个简单的班上人: public class Person { public string Name{get;set;} public SolidColorBrush SomeColor{get;set;} public Person(string name){ Name = name; } } 我将我的ListView的ItemsSource属性设置为List persons。 如果我只使用DisplayMemberP
列表视图
创建一个自定义数据模板
。
我有一个简单的班上人:
public class Person
{
public string Name{get;set;}
public SolidColorBrush SomeColor{get;set;}
public Person(string name){ Name = name; }
}
我将我的ListView
的ItemsSource
属性设置为List persons
。
如果我只使用DisplayMemberPath=Name
一切正常,但我希望有一个自定义模板来显示Name
和SomeColor
。
我创建了一个示例网格
,以显示我希望它的外观(没有任何绑定,仅作为示例):
现在的问题是,网格
没有扩展到ListView的全部可用宽度。它只是一个大概20-30px宽的小网格。
在搜索谷歌后,我添加了ListView.ItemContainerStyle
,但没有帮助
关于如何解决这个问题有什么建议吗?在
ItemContainerStyle/Style/Setter
中尝试将HorizontalContentAlignment
设置为Stretch
<Grid Height="50">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" MinWidth="10"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Patrick" Grid.Column="0" TextAlignment="Right" Margin="0,0,10,0" VerticalAlignment="Center"/>
<Rectangle Fill="Green" Grid.Column="1" />
</Grid>
<ListView x:Name="listView" ItemsSource="{Binding ElementName=pageRoot, Path=FriendList ,Mode=OneWay}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" MinWidth="10"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" Grid.Column="0"/>
<Rectangle Fill="LimeGreen" Grid.Column="1"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>