我想以主项的子项应显示在主项的右侧的方式显示嵌套的列表视图。如果用户仅点击任何主要项目,则应显示子项目。
<ListView x:Name="list1" Background="Blue" Width="200" Height="300" VerticalAlignment="Bottom">
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:Main">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="{x:Bind ItemName}" />
<ListView x:Name="list2" ItemsSource="{x:Bind SubItemsList}" Grid.Row="1">
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:Sub">
<TextBlock Foreground="Red" Text="{x:Bind SubItemName}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
当使用上面的代码时,我连续获得Main项目,而另一行是subitems。
Main 1
Sub 1
Sub 1
Main 2
Sub 2
Sub 2
但我的输出应该是
Main Items Sub Items
Main 1 Sub 1
Sub 1
Main 2 Sub 2
Sub 2
如果用户点击Main 1,它应该显示其子项目,依此类推。否则无需显示子项目。是否可以对上述代码进行任何更改?
答案 0 :(得分:0)
您必须使用FlyoutMenu控件,因为使用ListView无法满足您的要求。 ListView将显示所有Main和SubItems,无论它们是否被点击。然而,FlyoutMenu的工作方式与您在此处的要求完全相同。它会在点击时显示SubItems,并在右侧(或您选择的任何一侧)显示它。
The microsoft link for the basic idea of Flyout menu
A video tutorial to get you up and running with it right away
希望这能帮到你!!