![](/img/trans.png)
[英]Can I add a ListView or a GridView inside HeaderItem of another ListView? [UWP]
[英]ListView inside telerik GridView( or another listview ) in WPF(MVVM)
我在 GridView 中添加了一个 ListView
<tel:RadGridView AutoGenerateColumns="False" x:Name="ModuleGrid" ItemsSource="{Binding ProjectList,Source={StaticResource TowersVM},Mode=TwoWay}" HorizontalAlignment="Stretch" ShowGroupPanel="False" ColumnWidth="*" ShowColumnHeaders="False" RowIndicatorVisibility="Collapsed" Height="500"> <tel:StyleManager.Theme> <tel:Windows8TouchTheme/> </tel:StyleManager.Theme> <tel:RadGridView.Columns> <tel:GridViewImageColumn Width="150" x:Name="Img" IsFilterable="False" DataMemberBinding="{Binding TowerImage}"/> <!--<tel:GridViewDataColumn Width="100" x:Name="Img" Header="" IsFilterable="False" DataMemberBinding="{Binding TowerImage}"/>--> <tel:GridViewColumn> <tel:GridViewColumn.CellTemplate> <DataTemplate> <ListView x:Name="TemplateList" ItemsSource="{Binding UnitTypesList,Source={StaticResource TowersVM},Mode=TwoWay}"> <ListView.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"></StackPanel> </ItemsPanelTemplate> </ListView.ItemsPanel> <ListView.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal" Margin="40,20,40,20"> <Grid x:Name="TemplateGrid"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <StackPanel Grid.Row="0" Orientation="Vertical" Margin="5,0,0,0"> <TextBlock FontSize="14" Text="{Binding Tower_Name}" FontWeight="ExtraBold"/> <TextBlock FontSize="9" Text="{Binding Location}"/> </StackPanel> <TextBlock Grid.Row="1" Text="{Binding Unit_type_desc}" Margin="5,5,0,0"/> <StackPanel Grid.Row="2" Grid.Column="0" Orientation="Horizontal" Margin="5,5,0,0"> <Image Source="/Resources/rupee_icon.png" Width="30"/> <StackPanel Orientation="Vertical" Margin="5,0,0,0"> <TextBlock Text="Price"/> <TextBlock Text="{Binding List_price}"> <Run Text=" Cr."/> </TextBlock> </StackPanel> </StackPanel> <StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal" Margin="20,5,0,0"> <Image Source="/Resources/area_icon.png" Width="30"/> <StackPanel Orientation="Vertical" Margin="5,0,0,0"> <TextBlock Text="Area"/> <TextBlock Text="{Binding Carpet_area}"> <Run Text=" Sqft."/> </TextBlock> </StackPanel> </StackPanel> <Button BorderBrush="LightGreen" Background="White" Grid.Row="3" Grid.Column="0" Margin="0,5,0,5"> <StackPanel Orientation="Horizontal"> <TextBlock Text="Available : "/> <TextBlock Text="{Binding Available,Source={StaticResource TowersVM},Mode=TwoWay}"/> </StackPanel> </Button> <Button BorderBrush="Red" Background="White" Grid.Row="3" Grid.Column="1" Margin="20,5,0,5"> <StackPanel Orientation="Horizontal"> <TextBlock Text="Sold : "/> <TextBlock Text="{Binding Sold,Source={StaticResource TowersVM},Mode=TwoWay}"/> </StackPanel> </Button> </Grid> </StackPanel> </DataTemplate> </ListView.ItemTemplate> </ListView> </DataTemplate> </tel:GridViewColumn.CellTemplate> </tel:GridViewColumn> </tel:RadGridView.Columns> </tel:RadGridView>
我想要的是:一个 GridView 行,其中包含一个 ListView(具有不同数量的项目)。 问题:所有 RadGrid 行在 ListView 中都具有相同数量的项目。
视图模型代码:
public async void PopulateProjects()
{
var vAllProjList = await _projectsRepo.GetAllAsync();
foreach(var proj in vAllProjList)
{
//UnitTypesList.Clear();
ProjectList.Add(new ProjectTowerUnitTypeModel() { Projectid = proj.Id, ProjectName = proj.Name });
var vProjSpecificUnitList = await _unitTypesRepo.FindAsync(q => q.Class_id == proj.Id);
foreach(var unit in vProjSpecificUnitList)
{
UnitTypesList.Add(new ProjectTowerUnitTypeModel() { });
}
}
}
我通过将子项的 ItemsSource 集合作为父项的模型属性来实现它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.