2015-11-28 3 views
-7

я добавил в ListView в GridView Telerik GridView (или другой ListView) в WPF (MVVM)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.

код ViewModel:

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() { }); 
       } 
      } 
     } 

ответ

-1

Я достиг этого, принимая ItemsSource Коллекция ребенка как модели собственности родителя.

Смежные вопросы