微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RadControls+for+Silverlight学习1-GridView)

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

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,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非常用用:)

本文来自forrestsun 的博客,原文地址:http://www.cnblogs.com/forrestsun/archive/2011/05/13/2045859.html

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

相关推荐