2016-11-18 2 views
0

J'utilise imbriqué RadGridView dans mon application. J'ai besoin d'étendre la grille/les éléments enfant en sélectionnant la grille/ligne parent. À partir de maintenant seulement si je clique sur l'icône de développement il fait la fonctionnalité.Développer la ligne sélectionnée RadGridView WPF

Mais pour que l'utilisateur puisse voir les éléments enfants, je dois les montrer en sélectionnant la ligne, ce qui signifie que si l'utilisateur clique sur CheckBox, la ligne devrait se développer.

<telerik:RadGridView AutoGenerateColumns="False" CanUserInsertRows="False" IsSynchronizedWithCurrentItem="True" GroupRenderMode="Flat" 
      GridLinesVisibility="Horizontal" telerik:StyleManager.Theme="Windows8" Grid.Row="1" VerticalAlignment="Top" ClipboardPasteMode="None" ShowGroupPanel="False" ItemsSource="{Binding ItemsCollection, Mode=TwoWay, Source={StaticResource ItemsViewModel}}" RowHeight="30" RowIndicatorVisibility="Collapsed" CanUserReorderColumns="False" AlternationCount="2" IsFilteringAllowed="False" Grid.ColumnSpan="2" > 
        <telerik:RadGridView.ChildTableDefinitions> 
         <telerik:GridViewTableDefinition /> 
        </telerik:RadGridView.ChildTableDefinitions> 
        <telerik:RadGridView.Columns> 
         <telerik:GridViewDataColumn DataMemberBinding="{Binding IsRelease, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="75" EditTriggers="CellClick" > 
          <telerik:GridViewDataColumn.Header> 
           <Grid> 
            <TextBlock Text="Release" Margin="20, 0, 0, 0" Width="55"/> 
            <CheckBox Width="15" HorizontalAlignment="Left" Name="chkSelectAll" 
             IsChecked="{Binding ReleaseIsChecked, Mode=TwoWay, Source={StaticResource ItemsViewModel}}" IsThreeState="False" /> 
           </Grid> 
          </telerik:GridViewDataColumn.Header> 

          <telerik:GridViewDataColumn.CellTemplate> 
           <DataTemplate > 
            <CheckBox HorizontalAlignment="Left" Name="chkReleaseItem" telerik:StyleManager.Theme="Windows8" 
             IsChecked="{Binding IsRelease, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" > 
             <i:Interaction.Triggers> 
              <i:EventTrigger EventName="Click"> 
               <i:InvokeCommandAction Command="{Binding CheckedChangeCommand, Source={StaticResource ItemsViewModel}}" CommandParameter="{Binding Path=IsChecked, RelativeSource={RelativeSource Self}}"/> 
              </i:EventTrigger> 
             </i:Interaction.Triggers> 
            </CheckBox> 
           </DataTemplate> 
          </telerik:GridViewDataColumn.CellTemplate> 

         </telerik:GridViewDataColumn> 
         <telerik:GridViewDataColumn Header="No" DataMemberBinding="{Binding ItNo, Mode=TwoWay}" IsReadOnly="True" Width="Auto"/> 
        </telerik:RadGridView.Columns> 
        <telerik:RadGridView.HierarchyChildTemplate > 

         <DataTemplate> 
          <telerik:RadGridView GroupRenderMode="Flat" BorderThickness="0,1,0,1" telerik:StyleManager.Theme="Windows8" GridLinesVisibility="Horizontal" CanUserFreezeColumns="False" 
             AutoGenerateColumns="False" ItemsSource="{Binding NewItemList}" ShowGroupPanel="False" IsReadOnly="True" AlternationCount="2" IsFilteringAllowed="False" > 
           <telerik:RadGridView.Columns> 
            <telerik:GridViewDataColumn DataMemberBinding="{Binding IsSelect, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="75" EditTriggers="CellClick" > 
             <telerik:GridViewDataColumn.Header> 
              <Grid> 
               <TextBlock Text="Select" Margin="20, 0, 0, 0" Width="55"/> 
               <CheckBox Width="15" HorizontalAlignment="Left" Name="chkSelectAll" Command="{Binding CheckedAllItemChangeCommand, Source={StaticResource ItemsViewModel}}" IsThreeState="False"> 
                <CheckBox.IsChecked> 
                 <Binding RelativeSource="{RelativeSource AncestorType=telerik:GridViewDataControl}" Path="DataContext.SelectAll" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"/> 
                </CheckBox.IsChecked> 
                <CheckBox.CommandParameter> 
                 <MultiBinding Converter="{StaticResource MultiCommandConverter}"> 
                  <Binding Path="IsChecked" ElementName="chkSelectAll"/> 
                  <Binding RelativeSource="{RelativeSource AncestorType=telerik:GridViewDataControl}" Path="DataContext.PrototypeId"/> 
                 </MultiBinding> 
                </CheckBox.CommandParameter> 
               </CheckBox> 
              </Grid> 
             </telerik:GridViewDataColumn.Header> 

             <telerik:GridViewDataColumn.CellTemplate> 
              <DataTemplate > 
               <CheckBox HorizontalAlignment="Left" Name="chkSelect" telerik:StyleManager.Theme="Windows8" IsChecked="{Binding IsSelect, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Command="{Binding CheckedItemChangeCommand, Source={StaticResource ItemsViewModel}}" > 
                <CheckBox.CommandParameter> 
                 <MultiBinding Converter="{StaticResource MultiCommandConverter}"> 
                  <Binding Path="IsChecked" ElementName="chkSelect"/> 
                  <Binding Path="PrototypeItemId"/> 
                  <Binding Path="PrototypeId"/> 
                 </MultiBinding> 
                </CheckBox.CommandParameter> 
               </CheckBox> 
              </DataTemplate> 
             </telerik:GridViewDataColumn.CellTemplate> 

            </telerik:GridViewDataColumn> 
            <telerik:GridViewDataColumn Header="Item No" DataMemberBinding="{Binding ItemNumber, Mode=TwoWay}" IsReadOnly="True" /> 
            <telerik:GridViewDataColumn Header="Description" DataMemberBinding="{Binding Desc, Mode=TwoWay}" IsReadOnly="True" /> 
           </telerik:RadGridView.Columns> 
          </telerik:RadGridView> 

         </DataTemplate> 
        </telerik:RadGridView.HierarchyChildTemplate> 
        <telerik:RadGridView.AlternateRowStyle> 
         <Style TargetType="{x:Type telerik:GridViewRow}"> 
          <Setter Property="Background" Value="#eae8ed"/> 
         </Style> 
        </telerik:RadGridView.AlternateRowStyle> 
       </telerik:RadGridView> 

Comment puis-je réaliser cela en utilisant MVVM?

Répondre