2016-11-18 2 views
0

Ich verwende verschachtelte RadGridView in meiner Anwendung. Ich muss das Kindgitter/die Elemente erweitern, wenn ich das Elterngitter/die Elternlinie auswähle. Ab sofort nur, wenn ich auf das Erweiterungssymbol klicke, funktioniert es.Erweitern Sie die ausgewählte Zeile RadGridView WPF

Aber damit der Benutzer die untergeordneten Elemente anzeigen kann, muss ich sie beim Auswählen der Zeile anzeigen, was bedeutet, wenn der Benutzer auf CheckBox klickt, sollte die Zeile erweitert werden.

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

Wie kann ich dies erreichen mit MVVM?

Antwort

Verwandte Themen