码迷,mamicode.com
首页 > Windows程序 > 详细

【WPF】GridControl的使用

时间:2017-02-18 18:59:35      阅读:1139      评论:0      收藏:0      [点我收藏+]

标签:exp   ica   return   lock   mat   dialog   finally   source   tox   

一、前言

       在WPF中我们常常使用DataGrid来显示数据,在Dev中也有一个类似的控件—GridControl。

 

二、范例

 <dxg:GridControl  
      Grid.Row="1"
      ItemsSource="{Binding SelectedSummaryInfos}"
      Margin ="5" >
            <dxg:GridControl.View >
                <dxg:TableView Name="SummaryTable"  AutoWidth="True" AllowMoveColumnToDropArea="False"/>
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn   Header="楼层" Binding="{Binding FloorName}" ReadOnly="True"/>
                <dxg:GridColumn   Header="类型" Binding="{Binding QuantificationType}" ReadOnly="True"/>
                <dxg:GridColumn   Header="级别" Binding="{Binding RType}">
                    <dxg:GridColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding RowData.Row.RType}" FontFamily="SJQY"></TextBlock>
                        </DataTemplate>
                    </dxg:GridColumn.CellTemplate>
                </dxg:GridColumn>
                <dxg:GridColumn   Header="直径(mm)" Binding="{Binding Diameter}" ReadOnly="True" />
                <dxg:GridColumn   Header="总长(m)" Binding="{Binding Quantity,StringFormat={}{0:###.###}}" ReadOnly="True"/>
                <dxg:GridColumn   Header="总重(t)" Binding="{Binding Weight,StringFormat={}{0:###.###}}" ReadOnly="True" />
            </dxg:GridControl.Columns>
 </dxg:GridControl>

通过以上代码范例,我们可以看到以下几个特点:

1. 当GridContol显示时默认有一个拖拽框用以将字段拖入其中进行分组排序,这是一个很强大的功能,如果你不需要这个功能,可以ShowGroupPanel=“false”。

2. AllowMoveColumnToDropArea="False"是不让用户随意拖拽某一列至垃圾区。

3. GridControl通过设置TableView的AutoWidth=“Auto”来使Columns占满整个Grid,如果不设置的话有时候你会发现展现出的Grid会多出一列!

4. GridControl通过TableView的Name来进行某些操作,如导出成Excel:

var projectName = "Project";
if (projectNameItem != null)
{
      projectName = projectNameItem.Value;
}

var dlg = QSContainer.Resolve<ISaveFileDialogService>(); //IOC
dlg.Filter = "Excel file(*.xls)|*.xls";           
dlg.DefaultFileName = $"{projectName}_{"Summary.xls"}";                      
if (!dlg.ShowDialog())
{
     return;
}

     var filePath = dlg.GetFullFileName();           
     SummaryTable.ExportToXls(filePath);  // Name !
try
{
     Process.Start(filePath);
}
finally { }


5. dxg:GridColumn不能直接包含FontFamily等在DataGridTextColumn中常见的属性,需要重写Template,重写的时候有两个地方需要绑定,Template绑定的是RowData.Row.XX:

<dxg:GridColumn   Header="级别" Binding="{Binding RType}">    //第一处绑定
     <dxg:GridColumn.CellTemplate>
           <DataTemplate>
                   <TextBlock Text="{Binding RowData.Row.RType}" FontFamily="MS"></TextBlock>   //第二处绑定,这里是RowData.Row.XX
           </DataTemplate>
     </dxg:GridColumn.CellTemplate>
</dxg:GridColumn>

 

三、小结

 本文大致介绍了Dev的GridControl的基本功能,其实GridControl还有很多有用的设置可以去探索一下,我这里就做个抛砖引玉吧。

 

【WPF】GridControl的使用

标签:exp   ica   return   lock   mat   dialog   finally   source   tox   

原文地址:http://www.cnblogs.com/lovecsharp094/p/6413724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!