【转】RadControls for Silverlight(学习1-GridView)
引用:Telerik(官 网:http://www.telerik.com/)是保加利亚的一个软件公司,专注于微软.Net平台的表示层与内容管理控件。我们提供高度稳定性和丰富性能的组件产品,并可应用在非常严格的环境中。现在拥有 Microsoft, HP, Alcoa, BP, Harper Collins, Siemens, T-Mobile, HJ Heinz和一些最主要的教育机构和很多政府机关等客户。
我在使用的版本是RadControls_for_Silverlight4_2011_1_0316,开发工具采用VS2010 +SQLServer2008R2进行测试学习
Grid是我们做系统必不可少的控件了,所以我准备从这个开始,为自己留下学习痕迹。
先是了解控件属性便于下一步学习,常用属性
RadGridView
|
常用属性 |
说明 |
DEMO名称 |
|
AutoGenerateColumns="False" |
是否自动产生列 |
|
|
IsReadOnly="True" IsReadOnly="{Binding IsChecked, Mode=TwoWay, ElementName=IsReadOnlyCheckBox}" |
是否只读 |
Click Event command |
|
ShowGroupPanel="False" |
是否显示分组面板(常用,一般情况下是不会用到这个的) |
|
|
DataLoadMode="Asynchronous" |
数据加载模式 |
|
|
RowIndicatorVisibility="Collapsed" |
行指示 |
|
|
SelectionMode="Extended" |
Command |
|
|
CanUserDeleteRows="{Binding IsChecked, Mode=TwoWay, ElementName=CanUserDeleteRowsCheckBox}" |
是否可删除行 |
Command |
|
ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto" |
横向竖向滚动条设定 |
|
|
IsFilteringAllowed="False" |
列过滤查询是否可用 |
Enable/Disable |
|
ShowColumnFooters="True" |
是否显示列脚 |
Totals |
|
ShowGroupFooters="True" |
是否显示分组列脚 |
Totals |
|
GridLinesVisibility= Both Horizontal Vertical |
网络线设置 |
gridlinevisiblity |
GridViewDataColumn
|
属性 |
说明 |
DEMO名称 |
|
IsGroupable="False" |
列是否加入分组 |
|
|
IsFilterable="False" |
列是否可过滤查询 |
|
|
IsSortable="False" |
列是否可排序 |
|
|
DataFormatString="{}{0:c2}" DataFormatString="{}{0:d}" |
列输入格式 |
GridViewDataColumn.FilteringControl :可自定义表头查询控件
1、产生自动编号-Row Number
· 自定义列与绑定列并存
XAML
<Grid>
<telerik:RadGridView x:Name="RadGridView1" ItemsSource="{Binding Customers}" AutoGeneratingColumn="RadGridView1_AutoGeneratingColumn">
<telerik:RadGridView.Columns>
<custom:MyColumn Header="#" Width="50" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
· 自动绑定后的列取消功能(如果取消的列较多,还是需要考虑用别的方法替代)
private void RadGridView1_AutoGeneratingColumn(object sender, Telerik.Windows.Controls.GridViewAutoGeneratingColumnEventArgs e)
{
if (e.Column.UniqueName == "Order" || e.Column.UniqueName == "Product")
{
e.Cancel = true;
}
}
· 自定义列的处理
public class MyColumn : Telerik.Windows.Controls.GridViewColumn
{
public override FrameworkElement CreateCellElement(Telerik.Windows.Controls.GridView.GridViewCell cell, object dataItem)
{
TextBlock textBlock = cell.Content as TextBlock; if (textBlock == null)
{
textBlock = new TextBlock();
} textBlock.Text = (this.DataControl.Items.IndexOf(dataItem) + 1).ToString(); return textBlock;
}
}
2、行、列、单元格只读设置
private void ChangeEnableStateColumn(bool isEnabled)
{
GridViewHeaderRow headerRow = RadGridView1.ChildrenOfType<GridViewHeaderRow>().FirstOrDefault();
if (headerRow != null)
{
GridViewCellBase cell = (from c in headerRow.Cells
where c.Column.UniqueName == "EmployeeID"
select c).FirstOrDefault();
if (cell != null)
{
cell.IsEnabled = isEnabled;
}
} foreach (object item in RadGridView1.Items)
{
GridViewRow row = RadGridView1.ItemContainerGenerator.ContainerFromItem(item) as GridViewRow;
if (row != null)
{
GridViewCellBase cell = (from c in row.Cells
where c.Column.UniqueName == "EmployeeID"
select c).FirstOrDefault();
if (cell != null)
{
cell.IsEnabled = isEnabled;
}
}
}
} private void ChangeEnableStateCell(bool isEnabled)
{
if (RadGridView1.Items.Count > 0)
{
GridViewRow row = RadGridView1.ItemContainerGenerator.ContainerFromItem(RadGridView1.Items[0]) as GridViewRow;
if (row != null)
{
GridViewCellBase cell = (from c in row.Cells
where c.Column.UniqueName == "EmployeeID"
select c).FirstOrDefault();
if (cell != null)
{
cell.IsEnabled = isEnabled;
}
}
}
} private void ChangeEnableStateRow(bool isEnabled)
{
if (RadGridView1.Items.Count > 0)
{
GridViewRow row = RadGridView1.ItemContainerGenerator.ContainerFromItem(RadGridView1.Items[0]) as GridViewRow;
if (row != null)
{
row.IsEnabled = isEnabled;
}
}
}
XAML
<Grid>
<telerik:RadGridView x:Name="RadGridView1" ItemsSource="{Binding Customers}" AutoGeneratingColumn="RadGridView1_AutoGeneratingColumn">
<telerik:RadGridView.Columns>
<custom:MyColumn Header="#" Width="50" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
3、设置网格线颜色
private void VerticalGridLinesColorPicker_SelectedColorChanged(object sender, EventArgs e)
{
RadGridView1.VerticalGridLinesBrush = new SolidColorBrush(VerticalGridLinesColorPicker.SelectedColor);
} private void HorizontalGridLinesColorPicker_SelectedColorChanged(object sender, EventArgs e)
{
RadGridView1.HorizontalGridLinesBrush = new SolidColorBrush(HorizontalGridLinesColorPicker.SelectedColor);
}
4、保存用户对网格的设置
DEMO中saveandload settings中的Radgridviewsetting.cs非常用用:)
引用地址:http://www.cnblogs.com/forrestsun/archive/2011/05/13/2045859.html
【转】RadControls for Silverlight(学习1-GridView)的更多相关文章
- ArcGIS API for Silverlight学习笔记
ArcGIS API for Silverlight学习笔记(一):为什么要用Silverlight API(转) 你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我都 ...
- asp.net学习之GridView事件、GridViewRow对象
原文:asp.net学习之GridView事件.GridViewRow对象 1. GridView控件的事件 GridView有很多事件,事件可以定制控件的外观或者行为.事件分为三类 1.1 ...
- asp.net学习之GridView七种字段
原文:asp.net学习之GridView七种字段 asp.net中GridView绑定到数据源时,可以自动显示数据源的各个字段.只要设定其AutoGenerateColumns为TRUE即可.但这, ...
- Silverlight:telerik RadControls for Silverlight 主题使用心得
默认情况下: telerik RadControls控件使用的是Office Black 主题,就算在App.xaml.cs里写上 StyleManager.ApplicationTheme = ne ...
- 【转】RadControls for Silverlight(学习2-RadDataPager)
引用地址:http://www.cnblogs.com/forrestsun/archive/2011/05/15/2046894.html <Grid x:Name="LayoutR ...
- ArcGIS api fo silverlight学习三(利用ElementLayer实现鼠标悬浮弹出自定义窗体)
接着上一节继续学习,本节主要是利用ElementLayer实现鼠标悬浮弹出自定义窗体 参考博文:http://www.cnblogs.com/luxiaoxun/p/3322218.html 一.新建 ...
- ArcGIS api fo silverlight学习二(silverlight加载GraphicsLayer)
上一节学习了silverlight加载GeoServer发布的WMS地图,这一节学习一下加载GraphicsLayer 一.加载.png或jpg文件图标 1.在MainPage.xaml中添加资源配置 ...
- ArcGIS api fo silverlight学习一(silverlight加载GeoServer发布的WMS地图)
最好的学习资料ArcGIS api fo silverlight官网:http://help.arcgis.com/en/webapi/silverlight/samples/start.htm 一. ...
- Silverlight学习(三)
最近对WCFRIA+MVVM+Prism有了初步的认识,能够简单的实现一些数据库的交互.这节主要讲的是Silverlight通过domainservice和ado.net实体数据模型与数据库的交互.本 ...
随机推荐
- phpstorm取消强制换行
1 取消phpstorm右侧竖线显示 2 取消格式化代码时 自动换行
- Pattern Recognition for Cell-free DNA - Github
一直都没有找到生信领域简单易懂的机器学习案例,这回算是逮到一个了:机器学习识别cfDNA OpenGene/CfdnaPattern
- python爬虫实战(一)——实时获取代理ip
在爬虫学习的过程中,维护一个自己的代理池是非常重要的. 详情看代码: 1.运行环境 python3.x,需求库:bs4,requests 2.实时抓取西刺-国内高匿代理中前3页的代理ip(可根据需求自 ...
- SPSS数据分析—对数线性模型
我们之前讲Logistic回归模型的时候说过,分类数据在使用卡方检验的时候,当分类过多或者每个类别的水平数过多时,单元格会划分的非常细,有可能会导致大量单元格频数很小甚至为0,并且卡方检验虽然可以分析 ...
- 3.一般用AE开发的时候都会报错,具体只要加一行代码就行
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
- 前端常用的几个js判断(一)
1. 禁止右键点击$(document).ready(function(){ $(document).bind("contextmenu",function(e){ return ...
- 安装numpy
为了运行机器学习书上的实例,安装numpy.照着网上教程安装的,网上教程 1)下载numpy包 下载地址:https://pypi.python.org/pypi/numpy/#downloads 自 ...
- Java—泛型
泛型是JDK 5 中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型.泛型本质是参数化类型,也就是所操作的数据类型指定为一个参数. 假定我们有这样一个需求: ...
- MEF的学习笔记
为什么要使用MEF 在商业应用软件开发过程中,对于各个软件项目,都需要建立相应的系统框架,为了更好的规范系统的开发,提高生产效率,应该在公司级别制定相应的API标准.这些API标准将站在系统架构层次, ...
- 1. Two Sum I & II & III
1. Given an array of integers, return indices of the two numbers such that they add up to a specific ...