C# Xamarin动态网格布局
我有一个对象集合,它有一个类似“ValueType”的属性,基于这个属性我调用一个DataTemplateSelector类,该类将返回要为该对象显示的控件类型C# Xamarin动态网格布局,c#,xaml,xamarin,xamarin.forms,C#,Xaml,Xamarin,Xamarin.forms,我有一个对象集合,它有一个类似“ValueType”的属性,基于这个属性我调用一个DataTemplateSelector类,该类将返回要为该对象显示的控件类型 <control:ControlDataTemplateSelector x:Key="personDataTemplateSelector" RangeTemplate="{StaticResource rangeControl}" EnumTemplate="{S
<control:ControlDataTemplateSelector x:Key="personDataTemplateSelector"
RangeTemplate="{StaticResource rangeControl}"
EnumTemplate="{StaticResource pickControl}"
DateTemplate="{StaticResource dateControl}"/>
<DataTemplate x:Key="rangeControl">
<ViewCell>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<control:ScreenLabel Grid.Row="0" Grid.Column="{Binding Path=SortOrder, Converter={StaticResource sortOrderToColIndexConverter}}" Text="{Binding Path=TraitDescription}" />
<Entry Grid.Row="1" Grid.Column="{Binding Path=SortOrder, Converter={StaticResource sortOrderToColIndexConverter}}" />
</Grid>
</ViewCell>
</DataTemplate>
<DataTemplate x:Key="dateControl">
<ViewCell>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<control:ScreenLabel Grid.Row="0" Grid.Column="{Binding Path=SortOrder, Converter={StaticResource sortOrderToColIndexConverter}}" Text="{Binding Path=TraitDescription}" />
<DatePicker Grid.Row="1" Grid.Column="{Binding Path=SortOrder, Converter={StaticResource sortOrderToColIndexConverter}}"></DatePicker>
</Grid>
</ViewCell>
</DataTemplate>
<DataTemplate x:Key="pickControl">
<ViewCell>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<control:ScreenLabel Grid.Row="0" Grid.Column="{Binding Path=SortOrder, Converter={StaticResource sortOrderToColIndexConverter}}" Text="{Binding Path=TraitDescription}" />
<Picker Grid.Row="1" Grid.Column="{Binding Path=SortOrder, Converter={StaticResource sortOrderToColIndexConverter}}" />
</Grid>
</ViewCell>
</DataTemplate>
我在用两列格式以网格显示这些对象时遇到问题,例如,如果集合中有9个对象需要显示一个表格视图,其中4行各有2列,第5行有一列
用我目前的代码,我得到了一个之字形的布局。但我需要一些建议
我正在寻找需要在iOS和Droid中工作的解决方案,我会在ViewCell中使用StackLayouts而不是网格。 你可以做:
<StackLayout VerticalOptions="FillAndExpand" >
<control:ScreenLabel Text="{Binding Path=TraitDescription}" />
<Entry />
</StackLayout>
你确定你的绑定恢复正常了吗?我还没有在属性上看到逗号分隔的标记扩展设置 任何寻找答案的人,我们都使用流列表视图控件来解决它。它提供了并排查看的选项如果我使用堆栈布局,如何在一行中定位两列将其添加到堆栈布局:Orientation=“Horizontal”请详细解释解决方案,以便其他人更容易理解