您的位置:首页 > 其它

【转】RadControls for Silverlight(学习1-GridView)

2013-09-08 19:43 447 查看
引用:Telerik(官网:http://www.telerik.com/)是保加利亚的一个软件公司,专注于微软.Net平台的表示层与内容管理控件。我们提供高度稳定性和丰富性能的组件产品,并可应用在非常严格的环境中。现在拥有Microsoft,HP,Alcoa,BP,HarperCollins,Siemens,T-Mobile,HJHeinz和一些最主要的教育机构和很多政府机关等客户。

我在使用的版本是RadControls_for_Silverlight4_2011_1_0316,开发工具采用VS2010+SQLServer2008R2进行测试学习

Grid是我们做系统必不可少的控件了,所以我准备从这个开始,为自己留下学习痕迹。

先是了解控件属性便于下一步学习,常用属性

RadGridView

常用属性

说明

DEMO名称

AutoGenerateColumns="False"

是否自动产生列

IsReadOnly="True"

IsReadOnly="{BindingIsChecked,Mode=TwoWay,ElementName=IsReadOnlyCheckBox}"

是否只读

ClickEvent

command

ShowGroupPanel="False"

是否显示分组面板(常用,一般情况下是不会用到这个的)

DataLoadMode="Asynchronous"

数据加载模式

RowIndicatorVisibility="Collapsed"

行指示

SelectionMode="Extended"

Command

CanUserDeleteRows="{BindingIsChecked,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、产生自动编号-RowNumber

·自定义列与绑定列并存

XAML
<Grid>
<telerik:RadGridViewx:Name="RadGridView1"ItemsSource="{BindingCustomers}"AutoGeneratingColumn="RadGridView1_AutoGeneratingColumn">
<telerik:RadGridView.Columns>
<custom:MyColumnHeader="#"Width="50"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>


·自动绑定后的列取消功能(如果取消的列较多,还是需要考虑用别的方法替代)

privatevoidRadGridView1_AutoGeneratingColumn(objectsender,Telerik.Windows.Controls.GridViewAutoGeneratingColumnEventArgse)
{
if(e.Column.UniqueName=="Order"||e.Column.UniqueName=="Product")
{
e.Cancel=true;
}
}

·自定义列的处理

publicclassMyColumn:Telerik.Windows.Controls.GridViewColumn
{
publicoverrideFrameworkElementCreateCellElement(Telerik.Windows.Controls.GridView.GridViewCellcell,objectdataItem)
{
TextBlocktextBlock=cell.ContentasTextBlock;

if(textBlock==null)
{
textBlock=newTextBlock();
}

textBlock.Text=(this.DataControl.Items.IndexOf(dataItem)+1).ToString();

returntextBlock;
}
}


2、行、列、单元格只读设置

privatevoidChangeEnableStateColumn(boolisEnabled)
{
GridViewHeaderRowheaderRow=RadGridView1.ChildrenOfType<GridViewHeaderRow>().FirstOrDefault();
if(headerRow!=null)
{
GridViewCellBasecell=(fromcinheaderRow.Cells
wherec.Column.UniqueName=="EmployeeID"
selectc).FirstOrDefault();
if(cell!=null)
{
cell.IsEnabled=isEnabled;
}
}

foreach(objectiteminRadGridView1.Items)
{
GridViewRowrow=RadGridView1.ItemContainerGenerator.ContainerFromItem(item)asGridViewRow;
if(row!=null)
{
GridViewCellBasecell=(fromcinrow.Cells
wherec.Column.UniqueName=="EmployeeID"
selectc).FirstOrDefault();
if(cell!=null)
{
cell.IsEnabled=isEnabled;
}
}
}
}

privatevoidChangeEnableStateCell(boolisEnabled)
{
if(RadGridView1.Items.Count>0)
{
GridViewRowrow=RadGridView1.ItemContainerGenerator.ContainerFromItem(RadGridView1.Items[0])asGridViewRow;
if(row!=null)
{
GridViewCellBasecell=(fromcinrow.Cells
wherec.Column.UniqueName=="EmployeeID"
selectc).FirstOrDefault();
if(cell!=null)
{
cell.IsEnabled=isEnabled;
}
}
}
}

privatevoidChangeEnableStateRow(boolisEnabled)
{
if(RadGridView1.Items.Count>0)
{
GridViewRowrow=RadGridView1.ItemContainerGenerator.ContainerFromItem(RadGridView1.Items[0])asGridViewRow;
if(row!=null)
{
row.IsEnabled=isEnabled;
}
}
}

XAML
<Grid>
<telerik:RadGridViewx:Name="RadGridView1"ItemsSource="{BindingCustomers}"AutoGeneratingColumn="RadGridView1_AutoGeneratingColumn">
<telerik:RadGridView.Columns>
<custom:MyColumnHeader="#"Width="50"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>

3、设置网格线颜色

privatevoidVerticalGridLinesColorPicker_SelectedColorChanged(objectsender,EventArgse)
{
RadGridView1.VerticalGridLinesBrush=newSolidColorBrush(VerticalGridLinesColorPicker.SelectedColor);
}

privatevoidHorizontalGridLinesColorPicker_SelectedColorChanged(objectsender,EventArgse)
{
RadGridView1.HorizontalGridLinesBrush=newSolidColorBrush(HorizontalGridLinesColorPicker.SelectedColor);
}

4、保存用户对网格的设置

DEMO中saveandloadsettings中的Radgridviewsetting.cs非常用用:)

引用地址:/article/5171848.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: