Silverlight DataGrid使用之一 显示篇.docx

上传人:b****5 文档编号:6085523 上传时间:2023-01-03 格式:DOCX 页数:16 大小:51.93KB
下载 相关 举报
Silverlight DataGrid使用之一 显示篇.docx_第1页
第1页 / 共16页
Silverlight DataGrid使用之一 显示篇.docx_第2页
第2页 / 共16页
Silverlight DataGrid使用之一 显示篇.docx_第3页
第3页 / 共16页
Silverlight DataGrid使用之一 显示篇.docx_第4页
第4页 / 共16页
Silverlight DataGrid使用之一 显示篇.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

Silverlight DataGrid使用之一 显示篇.docx

《Silverlight DataGrid使用之一 显示篇.docx》由会员分享,可在线阅读,更多相关《Silverlight DataGrid使用之一 显示篇.docx(16页珍藏版)》请在冰豆网上搜索。

Silverlight DataGrid使用之一 显示篇.docx

SilverlightDataGrid使用之一显示篇

一、

用过的Gridview应该熟悉datagrid控件

  SilverlightDataGrid常用事件:

  BeginningEdit:

发生于一个单元格或行进入编辑模式之前。

  CellEditEnded:

发生于一个单元格编辑已被确认或取消。

  CellEditEnding:

发生于一个单元格正在结束编辑时。

  CurrentCellChanged:

发生于一个单元格成为当前单元格时。

  PreparingCellForEdit:

发生于在DataGridTemplateColumn下的单元格进入编辑模式时。

  SelectionChanged:

发生于当SelectedItem或SelectedItems属性值改变时。

  SilverlightDataGrid常用方法:

  BeginEdit:

使DataGrid进入编辑状态。

  CancelEdit:

取消DataGrid的编辑状态。

  CollapseRowGroup:

闭合DataGrid的行分组。

  CommitEdit:

确认DataGrid的编辑完成。

  ExpandRowGroup:

展开DataGrid的行分组。

  GetGroupFromItem:

从具体Item中得到分组。

  ScrollIntoView:

滚动DataGrid视图。

  SilverlightDataGrid常用属性:

  AlternatingRowBackground:

获取或设置一个笔刷用来描绘DataGrid奇数行的背景。

  AreRowDetailsFrozen:

获取或设置一个值用来判断是否冻结每行内容的详细信息。

  AreRowGroupHeadersFrozen:

获取或设置一个值用来判断是否冻结分组行的头部。

  AutoGenerateColumns:

获取或设置一个值用来判断是否允许自动生成表列。

  CanUserReorderColumns:

获取或设置一个值用来判断是否允许用户重新排列表列的位置。

  CanUserSortColumns:

获取或设置一个值用来判断是否允许用户按列对表中内容进行排序。

  CellStyle:

获取或设置单元格的样式。

  ColumnHeaderHeight:

获取或设置列头的高度。

  ColumnHeaderStyle:

获取或设置列头的样式。

  Columns:

获取组件中包含所有列的集合。

  ColumnWidth:

获取或设置列宽。

  CurrentColumn:

获取或设置包含当前单元格的列。

  CurrentItem:

获取包含当前单元格且与行绑定的数据项。

  DragIndicatorStyle:

获取或设置当拖曳列头时的样式。

  DropLocationIndicatorStyle:

获取或设置呈现列头时的样式。

  FrozenColumnCount:

获取或设置冻结列的个数。

  GridLinesVisibility:

获取或设置网格线的显示形式。

  HeadersVisibility:

获取或设置行头及列头的显示形式。

  HorizontalGridLinesBrush:

获取或设置水平网格线的笔刷。

  HorizontalScrollBarVisibility:

获取或设置水平滚动条的显示样式。

  IsReadOnly:

获取或设置DataGrid是否为只读。

  MaxColumnWidth:

获取或设置DataGrid的最大列宽。

  MinColumnWidth:

获取或设置DataGrid的最小列宽。

  RowBackground:

获取或设置用于填充行背景的笔刷。

  RowDetailsTemplate:

获取或设置被用于显示行详细部分的内容的模板。

  RowDetailsVisibilityMode:

获取或设置一个值用以判定行详细部分是否显示。

  RowGroupHeaderStyles:

获取呈现行分组头部的样式。

  RowHeaderStyle:

获取或设置呈现行头的样式。

  RowHeaderWidth:

获取或设置行头的宽度。

  RowHeight:

获取或设置每行的高度。

  RowStyle:

获取或设置呈现行时的样式。

  SelectedIndex:

获取或设置当前选中部分的索引值。

  SelectedItem:

获取或设置与当前被选中行绑定的数据项。

  SelectedItems:

获取与当前被选中的各行绑定的数据项们的列表(List)。

  SelectionMode:

获取或设置DataGrid的选取模式。

  VerticalGridLinesBrush:

获取或设置垂直网格线的笔刷。

  VerticalScrollBarVisibility:

获取或设置垂直滚动条的显示样式。

  1指定Column列表

   

DataGrid AutoGenerateColumns="False" Height="236" HorizontalAlignment="Left" Name="dataGrid1" 

VerticalAlignment="Top" Width="368" >

            

DataGrid.Columns>

                

DataGridTextColumn Header="编号"  Binding="{Binding id}">

DataGridTextColumn>

                

DataGridTextColumn Header="文本" Binding="{Binding text}">

DataGridTextColumn>

            

DataGrid.Columns>

        

DataGrid>

  还有个DataGridCheckBoxColumn它主要是Checkbox选项boolean类型另外DataGridTemplateColumn是自定义布局数据模板

  2加载时候显示填色

        SolidColorBrush r = new SolidColorBrush(Colors.Red); 

        private void dataGrid1_LoadingRow(object sender, DataGridRowEventArgs e)

        {

            CData c = e.Row.DataContext as CData;

            if (c.id % 5 == 0)

                e.Row.Background = r;

            else

                e.Row.Background = new SolidColorBrush(Colors.White);

        }

  3Row详细显示模板

DataGrid AutoGenerateColumns="False" Height="236" HorizontalAlignment="Left" Name="dataGrid1" VerticalAlignment="Top" Width="368" LoadingRow="dataGrid1_LoadingRow">

            

DataGrid.Columns>

                             

DataGridTextColumn Header="编号"  Binding="{Binding id}">

DataGridTextColumn>

                

DataGridTextColumn Header="文本" Binding="{Binding text}">

DataGridTextColumn>

            

DataGrid.Columns>

            

DataGrid.RowDetailsTemplate>

                

                    

                        

                    

                

            

DataGrid.RowDetailsTemplate>

        

DataGrid>

  

 

SilverlightDataGrid使用之二更新行篇

2011-06-0516:

08

首先在wcf加上一个编辑方法

   [ServiceContract]

   publicinterfaceIService1

   {

       [OperationContract]

       ListGetCDatas();

       [OperationContract]

       boolEditCData(CDatac);

       //TODO:

在此添加您的服务操作

   }

   //使用下面示例中说明的数据协定将复合类型添加到服务操作

   [DataContract]

   publicclassCData

   {

       [DataMember]

       publicintid;

       [DataMember]

       publicstringtext;

   }

 

   [System.ServiceModel.Activation.AspNetCompatibilityRequirements(RequirementsMode=System.ServiceModel.Activation.AspNetCompatibilityRequirementsMode.Required)]

   publicclassService1:

IService1

   {

       publicListGetCDatas()

       {

           SqlConnectioncn=newSqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["sldatabaseConnectionString"].ConnectionString);

           SqlCommand cmd=newSqlCommand("selectid,textfromt1",cn);

           cn.Open();

           SqlDataReaderdr=cmd.ExecuteReader();

            ListCList=newList();

            while(dr.Read())

            {

                CDatac=newCData{id=int.Parse(dr["id"].ToString()),text=dr["text"].ToString()};

                CList.Add(c);

            }

            cn.Close();

           returnCList;

       }

       publicboolEditCData(CDatac)

       {

           SqlConnectioncn=newSqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["sldatabaseConnectionString"].ConnectionString);

           SqlCommandcmd=newSqlCommand("updatet1settext=@textwhereid=@id",cn);

           cmd.Parameters.Add("@text",System.Data.SqlDbType.NVarChar).Value=c.text;

           cmd.Parameters.Add("@id",System.Data.SqlDbType.Int).Value=c.id;

           cn.Open();

           intr=cmd.ExecuteNonQuery();

           cn.Close();

           if(r>0)

               returntrue;

           else

               returnfalse;

       }

   }

在数据库创建一个表随便取名

 

xaml代码

  

DataGridAutoGenerateColumns="False"Height="236"HorizontalAlignment="Left"Name="dataGrid1"VerticalAlignment="Top"Width="368"LoadingRow="dataGrid1_LoadingRow"FrozenColumnCount="1"RowEditEnded="dataGrid1_RowEditEnded">

           

DataGrid.Columns>

            

DataGridTextColumnHeader="编号"  Binding="{Bindingid}">

DataGridTextColumn>

               

DataGridTemplateColumnHeader="文本">

                   

DataGridTemplateColumn.CellTemplate>

                       

                           

                       

                   

DataGridTemplateColumn.CellTemplate>

                   

DataGridTemplateColumn.CellEditingTemplate>

                       

                           

                        

                   

DataGridTemplateColumn.CellEditingTemplate>

               

DataGridTemplateColumn>           

DataGrid.Columns>

        

       

DataGrid>

cs代码

      privatevoiddataGrid1_RowEditEnded(objectsender,DataGridRowEditEndedEventArgse)

      {

          CDatac=e.Row.DataContextasCData;

          Service1Clients=newService1Client();

          s.EditCDataCompleted+=newEventHandler(s_EditCDataCompleted);

          s.EditCDataAsync(c);

      }

      voids_EditCDataCompleted(objectsender,EditCDataCompletedEventArgse)

      {

          if(e.Result)

              System.Windows.Browser.HtmlPage.Window.Alert("成功");

          else

              System.Windows.Browser.HtmlPage.Window.Alert("失败");

      }

然后测试显示列表后双击一个行

然后点击DataGrid边框结束编辑状态

SilverlightDataGrid使用之三排序篇

2011-06-0623:

18

首先DataGrid自带的排序特性

Name="LayoutRoot"Background="White">

DataGridAutoGenerateColumns="False"Height="236"HorizontalAlignment="Left"Name="dataGrid1"VerticalAlignment="Top"Width="368"LoadingRow="dataGrid1_LoadingRow"FrozenColumnCount="1"RowEditEnded="dataGrid1_RowEditEnded">

DataGrid.Columns>

DataGridTextColumnHeader="编号"Binding="{Bindingid}"CanUserSort="True">

DataGridTextColumn>

DataGridTemplateColumnHeader="文本">

DataGridTemplateColumn.CellTemplate>

DataGridTemplateColumn.CellTemplate>

DataGridTemplateColumn.CellEditingTemplate>

DataGridTemplateColumn.CellEditingTemplate>

DataGridTemplateColumn>

DataGrid.Columns>

DataGrid>

另一个方法是使用System.Windows.Data.PagedCollectionView

在后台代码

publicpartialclassDataGridControl:

UserControl

{

publicDataGridControl()

{

InitializeComponent();

SilverlightApplication1.ServiceReference1.Service1Clientc=newServiceReference1.Service1Client();

c.GetCDatasCompleted+=newEventHandler(c_GetCDatasCompleted);

c.GetCDatasAsync();

}

voidc_GetCDatasCompleted(objectsender,ServiceReference1.GetCDatasCompletedEventArgse)

{

if(e.Error==null)

{

System.Windows.Data.PagedCollectionViewview=newSystem.Windows.Data.PagedCollectionView(e.Result);

view.SortDescriptions.Add(newSystem.ComponentModel.SortDescription("id",System.ComponentModel.ListSortDirection.Descending));//指定属性名称作排序

dataGrid1.ItemsSource=view;

}

}

 

SilverlightDataGrid使用之四过滤篇

2011-06-0623:

36

创建wcf和xml页面参考

然后在后台代码修改一下

namespaceSilverlightApplication1

{

   publicpartialclassDataGridControl:

UserControl

   {

       publicDataGridControl()

       {

           InitializeComponent();

           SilverlightApplication1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1