引用: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)的更多相关文章

  1. ArcGIS API for Silverlight学习笔记

    ArcGIS API for Silverlight学习笔记(一):为什么要用Silverlight API(转) 你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我都 ...

  2. asp.net学习之GridView事件、GridViewRow对象

    原文:asp.net学习之GridView事件.GridViewRow对象 1. GridView控件的事件 GridView有很多事件,事件可以定制控件的外观或者行为.事件分为三类     1.1 ...

  3. asp.net学习之GridView七种字段

    原文:asp.net学习之GridView七种字段 asp.net中GridView绑定到数据源时,可以自动显示数据源的各个字段.只要设定其AutoGenerateColumns为TRUE即可.但这, ...

  4. Silverlight:telerik RadControls for Silverlight 主题使用心得

    默认情况下: telerik RadControls控件使用的是Office Black 主题,就算在App.xaml.cs里写上 StyleManager.ApplicationTheme = ne ...

  5. 【转】RadControls for Silverlight(学习2-RadDataPager)

    引用地址:http://www.cnblogs.com/forrestsun/archive/2011/05/15/2046894.html <Grid x:Name="LayoutR ...

  6. ArcGIS api fo silverlight学习三(利用ElementLayer实现鼠标悬浮弹出自定义窗体)

    接着上一节继续学习,本节主要是利用ElementLayer实现鼠标悬浮弹出自定义窗体 参考博文:http://www.cnblogs.com/luxiaoxun/p/3322218.html 一.新建 ...

  7. ArcGIS api fo silverlight学习二(silverlight加载GraphicsLayer)

    上一节学习了silverlight加载GeoServer发布的WMS地图,这一节学习一下加载GraphicsLayer 一.加载.png或jpg文件图标 1.在MainPage.xaml中添加资源配置 ...

  8. ArcGIS api fo silverlight学习一(silverlight加载GeoServer发布的WMS地图)

    最好的学习资料ArcGIS api fo silverlight官网:http://help.arcgis.com/en/webapi/silverlight/samples/start.htm 一. ...

  9. Silverlight学习(三)

    最近对WCFRIA+MVVM+Prism有了初步的认识,能够简单的实现一些数据库的交互.这节主要讲的是Silverlight通过domainservice和ado.net实体数据模型与数据库的交互.本 ...

随机推荐

  1. Oralce 账户被锁后的解决办法

    SQL> connect sys/sys as sysdba; 已连接. SQL> alter user system account unlock; 用户已更改.  www.2cto.c ...

  2. mac系统安装node

    1.node 是通过brew来安装的,所以第一步先安装brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebre ...

  3. YYYY-mm-dd HH:MM:SS

    备忘:YYYY-mm-dd HH:MM:SS部分解释 d               月中的某一天.一位数的日期没有前导零.    dd             月中的某一天.一位数的日期有一个前导零 ...

  4. red hat安装mysql二进制包

    数据包命名格式解释 mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz 黑色粗体表示为包名称 蓝色表示linux系统二进制包 红色表示构架     1.上传mysql- ...

  5. HAOI2012音量调节

    Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改 ...

  6. Python’s SQLAlchemy vs Other ORMs[转发 7] 比较结论

    Comparison Between Python ORMs For each Python ORM presented in this article, we are going to list t ...

  7. 求子串-KPM模式匹配-NFA/DFA

    求子串 数据结构中对串的5种最小操作子集:串赋值,串比较,求串长,串连接,求子串,其他操作均可在该子集上实现 数据结构中串的模式匹配 KPM模式匹配算法 基本的模式匹配算法 //求字串subStrin ...

  8. DynamicsCRM中的自动保存

    DynamicsCRM的自动保存功能 在DynamicsCRM2013开始,引入了自动保存功能. 保存一条记录 在新建一条记录的时候, 你必须在左上角手动点击保存按钮.如下图: 当保存完后,会发现,左 ...

  9. Takeown--夺取文件or文件夹所有权

    强制将当前目录下的所有文件及文件夹.子文件夹下的所有者更改为管理员组(administrators)命令:takeown /f * /a /r /d y 将所有d:\documents目录下的文件.子 ...

  10. Web应用安全十大主动安全措施

    这几天有空参加了360主办的第一届互联网安全大会(ISC 2013),除了现场看到FREEBUF现场微博号发的众多妹子之外,也听到了很多有趣的议题,比如TK分享的通过网络运营商缓存服务器偷渡,只需一台 ...