天天看點

(轉)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, 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

繼續閱讀