Silverlight DataGrid使用之一 显示篇.docx
- 文档编号:6085523
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:16
- 大小:51.93KB
Silverlight DataGrid使用之一 显示篇.docx
《Silverlight DataGrid使用之一 显示篇.docx》由会员分享,可在线阅读,更多相关《Silverlight DataGrid使用之一 显示篇.docx(16页珍藏版)》请在冰豆网上搜索。
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]
List
[OperationContract]
boolEditCData(CDatac);
//TODO:
在此添加您的服务操作
}
//使用下面示例中说明的数据协定将复合类型添加到服务操作
[DataContract]
publicclassCData
{
[DataMember]
publicintid;
[DataMember]
publicstringtext;
}
[System.ServiceModel.Activation.AspNetCompatibilityRequirements(RequirementsMode=System.ServiceModel.Activation.AspNetCompatibilityRequirementsMode.Required)]
publicclassService1:
IService1
{
publicList
{
SqlConnectioncn=newSqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["sldatabaseConnectionString"].ConnectionString);
SqlCommand cmd=newSqlCommand("selectid,textfromt1",cn);
cn.Open();
SqlDataReaderdr=cmd.ExecuteReader();
List
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.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.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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Silverlight DataGrid使用之一 显示篇 DataGrid 使用 之一 显示
![提示](https://static.bdocx.com/images/bang_tan.gif)