先是了解控件屬性便于下一步學習,常用屬性
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非常用用:)
本文來自forrestsun 的部落格,原文位址:http://www.cnblogs.com/forrestsun/archive/2011/05/13/2045859.html