2016-11-18 6 views
0

Я использую вложенный файл RadGridView в своем приложении. Мне нужно развернуть дочернюю сетку/элементы при выборе родительской сетки/строки. На данный момент, только если я нажимаю значок расширения, он выполняет эту функцию.Развернуть выбранную строку RadGridView WPF

Но для того, чтобы пользователь мог просмотреть дочерние элементы, мне нужно показать их при выборе строки, которая означает, что если пользователь нажимает кнопку CheckBox, строка должна расширяться.

<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> 

Как я могу достичь этого, используя MVVM?

ответ