2013-07-01 6 views
2

Я застрял здесь, что как я могу использовать вложенную сетку для управления сеткой devexpress. Я много разбираюсь в исследованиях, но не нашел ничего хорошего. Вот мойКак использовать сетку внутри сетки (вложенную сетку) на инструментах Devexpress в WPF

XAML

<dxdo:LayoutPanel Caption="Photography Jobs" AllowClose="False" Name="pnlShotoJobs" GotFocus="pnlShotoJobs_GotFocus"> 

       <my:GridControl Name="dgPhotoJobs" MouseDoubleClick="dgPhotoJobs_MouseDoubleClick"> 
        <my:GridControl.Columns> 
         <my:GridColumn FieldName="JobName" Name="grdColumnJobName" /> 
         <my:GridColumn FieldName="JobDate" Name="grdColumnJobDate" /> 

        </my:GridControl.Columns> 
       <my:GridControl.View> 

         <my:TableView NavigationStyle="Row" ShowAutoFilterRow="True" ShowGroupPanel="False" MultiSelectMode="Row" Name="JobTableView" MouseUp="JobTableView_MouseUp" AllowEditing="False" Focusable="False"> 
         </my:TableView> 
        </my:GridControl.View> 
       </my:GridControl> 
      </dxdo:LayoutPanel> 

Дизайн

enter image description here

Когда мы нажмем на любой номер Photography Jobs, тогда новая сетка откроется под этой кнопкой и будет иметь все данные, принадлежащие идентификатору основного ключа щелкнутой строки. ЕСЛИ у вас есть какой-либо код или какой-либо совет, пожалуйста, поделитесь им со мной.

Заранее благодарен.

ответ

2

Чтобы показать вложенную сетку для ваших строк GridControl, определите DataRowTemplate. как это:

 <my:GridControl Name="dgPhotoJobs" MouseDoubleClick="dgPhotoJobs_MouseDoubleClick"> 
         <my:GridControl.Columns> 
          <my:GridColumn FieldName="JobName" Name="grdColumnJobName" /> 
          <my:GridColumn FieldName="JobDate" Name="grdColumnJobDate" /> 

         </my:GridControl.Columns> 
        <my:GridControl.View> 

          <my:TableView NavigationStyle="Row" ShowAutoFilterRow="True" ShowGroupPanel="False" MultiSelectMode="Row" Name="JobTableView" AllowEditing="False" Focusable="False"> 

    <dxg:TableView.DataRowTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Vertical"> 
            <core:MeasurePixelSnapper> 
             <ContentPresenter ContentTemplate="{DynamicResource {dxgt:GridRowThemeKey ResourceKey=DataRowTemplate}}" Name="defaultRowPresenter" /> 
            </core:MeasurePixelSnapper> 
            <core:DXExpander HorizontalExpand="None" IsExpanded="{Binding Path=(dxg:DataViewBase.IsFocusedRow), RelativeSource={RelativeSource TemplatedParent}}" VerticalExpand="FromTopToBottom"> 
             <Border Background="Cyan" BorderBrush="{DynamicResource {dxgt:GridRowThemeKey ResourceKey=GridDataRowDelimiterBrush}}" BorderThickness="0,1,0,0" TextElement.Foreground="Black"> 
              <Grid MaxHeight="400"> 
               <dxg:GridControl Grid.Row="1" AutoPopulateColumns="False" ItemsSource="{Binding Path=DataContext.MyCollection, UpdateSourceTrigger=PropertyChanged}" > 
                <dxg:GridControl.Columns> 
                 <dxg:GridColumn Header="Column1" FieldName="FieldName1" AllowEditing="False"/> 
                 <dxg:GridColumn Header="Column2" FieldName="FieldName2" AllowEditing="False">                         
                </dxg:GridControl.Columns>            
               </dxg:GridControl> 
              </Grid> 
             </Border> 
            </core:DXExpander> 
           </StackPanel> 
          </DataTemplate> 
    </dxg:TableView.DataRowTemplate> 
          </my:TableView> 
         </my:GridControl.View> 
        </my:GridControl> 

здесь мои Пространства имен XML:

xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"   

xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys" 

xmlns:core="http://schemas.devexpress.com/winfx/2008/xaml/core" 
+0

спасибо, позвольте мне проверить. – Rahul

+0

Что такое код, который вы разместили внутри тега «core: MeasurePixelSnapper». – Rahul