2016-11-18 43 views
0

我在我的應用程序中使用了嵌套的RadGridView。我需要在選擇父網格/行時展開子網格/項目。到目前爲止,只有當我點擊展開圖標時,它才能實現此功能。展開選中的行RadGridView WPF

但是,爲了讓用戶查看我需要在選擇行時顯示的子項,這意味着如果用戶單擊了該行,應該展開該行。

<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

回答