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

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

大家好,又见面了,我是你们的朋友全栈君。

引用: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

转载于:https://www.cnblogs.com/sishierfei/p/3308681.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/161987.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • rs232 ttl区别(新宝骏RM和RS的区别)

    CMOS电平和TTL电平:CMOS逻辑电平范围比较大,范围在3~15V,比如4000系列(4011与非门),当5V供电时,输出在4.6以上为高电平,输出在0.05V以下为低电平。输入在3.5V以上为高电平,输入在1.5V以下为低电平。    而对于TTL芯片,供电范围在0~5V,常见都是5V,如74系列5V供电,输出在2.7V以上为高电平,输出在0.5V以下为低电平,输入在2V以上为高

  • H264解码过滤花屏视频帧

    H264解码过滤花屏视频帧众所周知视频在各个领域占有极为重要的地位,安防领域,互联网,医药,教育等等等等。扯淡我就尽量不多扯了,现主要扯安防领域吧,安防领域尤其是视频分析领域,视频质量要求比较苛刻。下面介绍一下场景比较苛刻的图片情况:1.这种2.这种花屏现象,在视频接入解码过程中尤为常见,(比如28181接入,rtsp等等),解码大家都考虑使用ffmpeg进行解码,首先考虑的可能是解码错误直接从解码过程…

  • pycharm2021年激活码刚出【2021免费激活】[通俗易懂]

    (pycharm2021年激活码刚出)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~08…

  • 自用知识_实用小知识

    自用知识_实用小知识1异步内部类privateHandlerhandler=newHandler(){                  @OverridepublicvoidhandleMessage(Messagemsg){                           if(msg.obj!=null&&listener!=null){

    2022年10月29日
  • webpack dev server_devserver proxy

    webpack dev server_devserver proxy前言当我们使用webpack打包时,发现每次更新了一点代码,都需要重新打包,这样很麻烦,我们希望本地能搭建一个服务器,然后写入新的代码能够自动检测出来,这时候就需要用到webpack-dev-ser

  • sudo命令 sudoers文件

    sudo命令 sudoers文件超级用户权限授权规则含义root ALL=(ALL:ALL)ALL用户名root ALL=(ALL:ALL)ALL主机名root ALL=(**ALL:ALL**)ALL目标用户:组,以谁的身份去执行root ALL=(ALL:ALL)**ALL**命令别名定义>Host_Alias:主机的列表>User_Alias:具有sudo权限的用户的列表

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号