简体   繁体   English

展开选定的行RadGridView WPF

[英]Expand selected row RadGridView WPF

I'm using nested RadGridView in my application. 我在应用程序中使用嵌套的RadGridView I need to expand the child grid/items on selecting the parent grid/row. 我需要在选择父网格/行时扩展子网格/项目。 As of now only if i click expand icon it does the functionality. 到目前为止,仅当我单击展开图标时,它才能执行功能。

But for the user to view the child items i need to show them on selecting the row which means if the user clicks the CheckBox the row should expand. 但是,要让用户查看子项,我需要在选择行时向其显示,这意味着如果用户单击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>

How can i achieve this using MVVM ? 如何使用MVVM实现此目的?

I'm not versed in WPF but in WinForms you simply have to set the IsExpanded property of each row you want to expand. 我不熟悉WPF,但在WinForms中,您只需要设置要扩展的每一行的IsExpanded属性。 A WinForms example is included. 包含一个WinForms示例。

http://docs.telerik.com/devtools/winforms/gridview/hierarchical-grid/how-to/expanding-all-rows http://docs.telerik.com/devtools/winforms/gridview/hierarchical-grid/how-to/expanding-all-rows

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM