我试着设计一个表格,你可以在每一行添加一组数据。这组数据包含3项:一个复选框和两个标签。标题行应该包含树静态字符串。我试着这样做,但我无法管理,标题和底层行一起行为。P.e.我想这样定义列:* 、自动、*。这意味着外部列应根据列中最长的文本(标题和数据)调整大小,而中间行应占用其余空间。
目前我有两个单独的网格以下的文本,因为我不能把它们加入一个。另外,为了测试我使外部列的大小静态。都有相同的参数。但正如所告诉的,他们应该在一个表中与 ,自动,
<Grid RowDefinitions="40, *"
Padding="5">
<Grid ColumnDefinitions="100, *, 80"
Grid.Row="0">
<Label Text="Checked" Grid.Row="0" Grid.Column="0" Padding="10"/>
<Label Text="Article" Grid.Row="0" Grid.Column="1" Padding="10"/>
<Label Text="Price" Grid.Row="0" Grid.Column="2" Padding="10"/>
</Grid>
<CollectionView ItemsSource="{Binding Items, Converter={StaticResource sconverter}}"
Grid.Row="1">
<!-- , Converter={StaticResource converter}-->
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid ColumnDefinitions="100, *, 80"
Grid.Row="1">
<CheckBox IsChecked="{Binding isChecked}" Grid.Column="0"/>
<Label Text="{Binding name}"
Padding="5" Grid.Column="1"/>
<!--BackgroundColor="LightGray"/-->
<Label Text="{Binding price, Converter={StaticResource vconverter}}"
Padding="5" Grid.Column="2"/>
<!--BackgroundColor="DarkGray"/-->
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</Grid>
表格:
像CollectionView和DataTemplate这样用于数据绑定的东西需要一些容器,比如网格,它们不能包含不同的项目,比如复选框和标签。
1.我如何将这两个表连接在一起,同时保持绑定不变?
1.是否可以根据文本字体和大小管理行的高度?
谢谢你,托马斯
1条答案
按热度按时间hsvhsicv1#
不太确定我是否理解这里对“在同一个表中”的关注。CollectionView本身有一个容器,它会在其中将每一项作为新行添加(在同一个“表”中)。
您可能希望使用CollectionView的Header,如果我理解正确的话,这可能会回答您的问题。但是,即使您使用Header/ HeaderTemplate,您仍然需要在两个不同的区域中定义,使用ColumnSizes 、Auto、 分隔网格,以便将它们对齐。
另外,我非常确定集合视图会调整所有行的高度,以使它们适合最大行的内容。因此,如果你想要“自定义”行高,你可能要么必须为你的集合视图定制一个行为,要么为你的项目添加一个特定的高度--如果你想根据行中的值来选择不同的高度,可以通过转换器。