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

稳扎稳打Silverlight(17) - 2.0数据之详解DataGrid, 绑定数据到ListBox

[索引页] @H_404_4@[源码下载] @H_404_4@@H_404_4@@H_404_4@
稳扎稳打Silverlight(17) - 2.0数据之详解DataGrid,详解ListBox
@H_404_4@@H_404_4@ 作者: webabcd @H_404_4@@H_404_4@@H_404_4@ 介绍 @H_404_4@ Silverlight 2.0 详解DataGrid,绑定数据到ListBox: @H_404_4@     AutoGenerateColumns - 是否根据数据源自动生成列 @H_404_4@     RowDetailsVisibilityMode - 显示相应的行的详细数据时所使用的显示模式 @H_404_4@     DataGrid.Columns - 手工定义DataGrid的列 @H_404_4@     DataGrid.RowDetailstemplate - 用于显示相应的行的详细数据的模板 @H_404_4@     AreRowDetailsFrozen - 是否冻结 RowDetailstemplate @H_404_4@     GridLinesVisibility - 表格分隔线显示方式 @H_404_4@     RowBackground - 奇数数据行背景 @H_404_4@     AlternatingRowBackground - 偶数数据行背景 @H_404_4@     IsReadOnly - 单元格是否只读 @H_404_4@     FrozenColumnCount - 表格所冻结的列的总数(从左边开始数) @H_404_4@     SelectionMode - 行的选中模式 @H_404_4@     CanUserReorderColumns - 是否允许拖动列 @H_404_4@     CanUserResizeColumns - 是否允许改变列的宽度 @H_404_4@     CanUserSortColumns - 是否允许列的排序 @H_404_4@     VerticalGridLinesBrush - 改变表格的垂直分隔线的 Brush @H_404_4@     HorizontalGridLinesBrush - 改变表格的水平分隔线的 Brush @H_404_4@     HeadersVisibility - 表头(包括列头和行头)的显示方式 @H_404_4@@H_404_4@@H_404_4@ 在线DEMO @H_404_4@http://www.cnblogs.com/webabcd/archive/2008/10/09/1307486.html @H_404_4@@H_404_4@@H_404_4@ 示例 @H_404_4@ SourceDataModel.cs @H_404_4@

using  System;@H_404_4@

using  System.Net;@H_404_4@

using  System.Windows;@H_404_4@

using  System.Windows.Controls;@H_404_4@

using  System.Windows.Documents;@H_404_4@

using  System.Windows.Ink;@H_404_4@

using  System.Windows.Input;@H_404_4@

using  System.Windows.Media;@H_404_4@

using  System.Windows.Media.Animation;@H_404_4@

using  System.Windows.Shapes;@H_404_4@

@H_404_4@

namespace  Silverlight20.Data@H_404_4@

{@H_404_4@

    
public class SourceDataModel@H_404_4@

    
{@H_404_4@

        
public string Name getset; }@H_404_4@

        
public int Age getset; }@H_404_4@

        
public DateTime DayOfBirth getset; }@H_404_4@

        
public bool Male getset; }@H_404_4@

    }
@H_404_4@

}
@H_404_4@

@H_404_4@ SourceData.cs @H_404_4@

using  System;@H_404_4@

using  System.Net;@H_404_4@

using  System.Windows;@H_404_4@

using  System.Windows.Controls;@H_404_4@

using  System.Windows.Documents;@H_404_4@

using  System.Windows.Ink;@H_404_4@

using  System.Windows.Input;@H_404_4@

using  System.Windows.Media;@H_404_4@

using  System.Windows.Media.Animation;@H_404_4@

using  System.Windows.Shapes;@H_404_4@

@H_404_4@

using  System.Collections.ObjectModel;@H_404_4@

@H_404_4@

namespace  Silverlight20.Data@H_404_4@

{@H_404_4@

    
public class SourceData@H_404_4@

    
{@H_404_4@

        
//  ObservableCollection<T> 内置实现了 INotifyCollectionChanged 接口(可直接应用于 OneWay 和 TwoWay 的绑定模式)@H_404_4@

        public ObservableCollection<SourceDataModel> GetData()@H_404_4@

        
{@H_404_4@

            var source 
= new ObservableCollection<SourceDataModel>();@H_404_4@

@H_404_4@

            
for (int i = 0; i < 100; i++)@H_404_4@

            
{@H_404_4@

                source.Add(@H_404_4@

                    
new SourceDataModel@H_404_4@

                    
{@H_404_4@

                        Name 
= "Name" + i.ToString().PadLeft(4'0'),@H_404_4@

                        Age 
= new Random(i).Next(2060),@H_404_4@

                        DayOfBirth 
= DateTime.Now,@H_404_4@

                        Male 
= Convert.ToBoolean(i % 2)@H_404_4@

                    }
);@H_404_4@

            }
@H_404_4@

@H_404_4@

            
return source;@H_404_4@

        }
@H_404_4@

    }
@H_404_4@

}
@H_404_4@

@H_404_4@@H_404_4@ 1、DataGrid01.xaml @H_404_4@

< UserControl  x:Class ="Silverlight20.Data.DataGrid01" @H_404_4@

    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  @H_404_4@

    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml" @H_404_4@

    xmlns:data
="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"  @H_404_4@

    xmlns:basics
="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" > @H_404_4@

    
< StackPanel  HorizontalAlignment ="Left" > @H_404_4@

@H_404_4@

        
< CheckBox  Content ="是否冻结 RowDetailstemplate"  Margin ="5" @H_404_4@

            Checked
="chkFreezeRowDetails_Changed"  Unchecked ="chkFreezeRowDetails_Changed"   /> @H_404_4@

@H_404_4@

        
<!-- @H_404_4@

        AutoGenerateColumns - 是否根据数据源自动生成列。认值为 true@H_404_4@

        RowDetailsVisibilityMode - 显示相应的行的详细数据时所使用的显示模式 [System.Windows.Controls.DataGridRowDetailsVisibilityMode枚举]@H_404_4@

            DataGridRowDetailsVisibilityMode.Collapsed - 总不显示    @H_404_4@

            DataGridRowDetailsVisibilityMode.Visible - 总是显示  @H_404_4@

            DataGridRowDetailsVisibilityMode.VisibleWhenSelected - 只显示选中行的详细数据。认值         @H_404_4@

        
--> @H_404_4@

        
< data:DataGrid  x:Name ="DataGrid1"  Margin ="5" @H_404_4@

            Width
="400"  Height ="200"  @H_404_4@

            AutoGenerateColumns
="False"  @H_404_4@

            
> @H_404_4@

@H_404_4@

            
<!-- @H_404_4@

            DataGrid.Columns - 手工定义DataGrid的列@H_404_4@

                DataGridTextColumn - 该列的单元格内文本方式显示@H_404_4@

                DataGridCheckBoxColumn - 该列的单元格以复选框方式显示@H_404_4@

                DataGridTemplateColumn - 该列的单元格以自定义方式显示@H_404_4@

                    DataGridTemplateColumn.CellTemplate - 显示模式下的单元格模板@H_404_4@

                    DataGridTemplateColumn.CellEditingTemplate - 编辑模式下的单元格模板@H_404_4@

            
--> @H_404_4@

            
< data:DataGrid.Columns > @H_404_4@

                
< data:DataGridTextColumn  Header ="姓名"  Binding =" {Binding Name} "   /> @H_404_4@

                
< data:DataGridTextColumn  Header ="生日"  Binding =" {Binding DayOfBirth} "   /> @H_404_4@

                
< data:DataGridTextColumn  Header ="年龄"  Binding =" {Binding Age} "   /> @H_404_4@

                
< data:DataGridCheckBoxColumn  Header ="性别"  Binding =" {Binding Male} "   /> @H_404_4@

                
< data:DataGridTemplateColumn  Header ="生日" > @H_404_4@

                    
< data:DataGridTemplateColumn.CellTemplate > @H_404_4@

                        
< DataTemplate > @H_404_4@

                            
< Grid > @H_404_4@

                                
< Rectangle  Fill ="Red"  Margin ="2"   /> @H_404_4@

                                
< TextBlock  Text =" {Binding DayOfBirth} "  Foreground ="Yellow"   /> @H_404_4@

                            
</ Grid > @H_404_4@

                        
</ DataTemplate > @H_404_4@

                    
</ data:DataGridTemplateColumn.CellTemplate > @H_404_4@

                    
< data:DataGridTemplateColumn.CellEditingTemplate > @H_404_4@

                        
< DataTemplate > @H_404_4@

                            
< basics:DatePicker  SelectedDate =" {Binding DayOfBirth} "   /> @H_404_4@

                        
</ DataTemplate > @H_404_4@

                    
</ data:DataGridTemplateColumn.CellEditingTemplate > @H_404_4@

                
</ data:DataGridTemplateColumn > @H_404_4@

            
</ data:DataGrid.Columns > @H_404_4@

@H_404_4@

            
<!-- @H_404_4@

            DataGrid.RowDetailstemplate - 用于显示相应的行的详细数据的模板@H_404_4@

            
--> @H_404_4@

            
< data:DataGrid.RowDetailstemplate > @H_404_4@

                
< DataTemplate > @H_404_4@

                    
< StackPanel  Margin ="5"  Background ="Aqua"  Height ="100" > @H_404_4@

                        
< TextBlock  Text =" {Binding Name} "  Margin ="5"    /> @H_404_4@

                        
< TextBlock  Text =" {Binding Age} "  Margin ="5"    /> @H_404_4@

                        
< TextBlock  Text =" {Binding DayOfBirth} "  Margin ="5"    /> @H_404_4@

                    
</ StackPanel > @H_404_4@

                
</ DataTemplate > @H_404_4@

            
</ data:DataGrid.RowDetailstemplate > @H_404_4@

@H_404_4@

        
</ data:DataGrid > @H_404_4@

@H_404_4@

    
</ StackPanel > @H_404_4@

</ UserControl > @H_404_4@

@H_404_4@ DataGrid01.xaml.cs @H_404_4@

using  System;@H_404_4@

using  System.Collections.Generic;@H_404_4@

using  System.Linq;@H_404_4@

using  System.Net;@H_404_4@

using  System.Windows;@H_404_4@

using  System.Windows.Controls;@H_404_4@

using  System.Windows.Documents;@H_404_4@

using  System.Windows.Input;@H_404_4@

using  System.Windows.Media;@H_404_4@

using  System.Windows.Media.Animation;@H_404_4@

using  System.Windows.Shapes;@H_404_4@

@H_404_4@

namespace  Silverlight20.Data@H_404_4@

{@H_404_4@

    
public partial class DataGrid01 : UserControl@H_404_4@

    
{@H_404_4@

        
public DataGrid01()@H_404_4@

        
{@H_404_4@

            InitializeComponent();@H_404_4@

@H_404_4@

            BindData();@H_404_4@

        }
@H_404_4@

@H_404_4@

        
void BindData()@H_404_4@

        
{@H_404_4@

            var source 
= new Data.sourceData();@H_404_4@

@H_404_4@

            
// 设置 DataGrid 的数据源@H_404_4@

            DataGrid1.ItemsSource = source.GetData();@H_404_4@

        }
@H_404_4@

@H_404_4@

        
private void chkFreezeRowDetails_Changed(object sender, RoutedEventArgs e)@H_404_4@

        
{@H_404_4@

            
// AreRowDetailsFrozen - 是否冻结 RowDetailstemplate 。 认值为 false@H_404_4@

            
//     如果等于 true ,那么在 DataGrid 的水平滚动条滚动的时候 RowDetailstemplate 不会跟着滚动@H_404_4@

@H_404_4@

            CheckBox chk 
= sender as CheckBox;@H_404_4@

@H_404_4@

            
if (DataGrid1 != null)@H_404_4@

                DataGrid1.AreRowDetailsFrozen 
= (bool)chk.IsChecked;@H_404_4@

        }
@H_404_4@

    }
@H_404_4@

}
@H_404_4@

@H_404_4@@H_404_4@ 2、DataGrid02.xaml @H_404_4@

< UserControl  x:Class ="Silverlight20.Data.DataGrid02" @H_404_4@

    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  @H_404_4@

    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml" @H_404_4@

    xmlns:data
="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" > @H_404_4@

    
< StackPanel  HorizontalAlignment ="Left" > @H_404_4@

@H_404_4@

        
< StackPanel  Orientation ="Vertical"  Margin ="5" > @H_404_4@

        @H_404_4@

            
< CheckBox  Content ="是否只读"  Margin ="5"  @H_404_4@

                Checked
="chkReadOnly_Changed"  Unchecked ="chkReadOnly_Changed"   /> @H_404_4@

@H_404_4@

            
< CheckBox  Content ="冻结列"  Margin ="5" @H_404_4@

                Checked
="chkFreezeColumn_Changed"  Unchecked ="chkFreezeColumn_Changed" /> @H_404_4@

@H_404_4@

            
< CheckBox  Content ="行的选中模式,是否只能单选"  Margin ="5" @H_404_4@

                Checked
="chkSelectionMode_Changed"  Unchecked ="chkSelectionMode_Changed"   /> @H_404_4@

@H_404_4@

            
< CheckBox  Content ="是否允许拖动列"  IsChecked ="true"  Margin ="5"  @H_404_4@

                Checked
="chkColReorder_Changed"  Unchecked ="chkColReorder_Changed" /> @H_404_4@

@H_404_4@

            
< CheckBox  Content ="是否允许改变列的宽度"  IsChecked ="true"  Margin ="5" @H_404_4@

                Checked
="chkColResize_Changed"  Unchecked ="chkColResize_Changed" /> @H_404_4@

                @H_404_4@

            
< CheckBox  Content ="是否允许列的排序"  IsChecked ="true"  Margin ="5" @H_404_4@

                Checked
="chkColSort_Changed"  Unchecked ="chkColSort_Changed" /> @H_404_4@

@H_404_4@

            
< CheckBox  Content ="改变表格的垂直分隔线的 Brush"  Margin ="5"  @H_404_4@

                Checked
="chkCustomGridLineVertical_Changed"  Unchecked ="chkCustomGridLineVertical_Changed" /> @H_404_4@

                @H_404_4@

            
< CheckBox  Content ="改变表格的水平分隔线的 Brush"  Margin ="5" @H_404_4@

                Checked
="chkCustomGridLineHorizontal_Changed"  Unchecked ="chkCustomGridLineHorizontal_Changed" /> @H_404_4@

@H_404_4@

            
< ComboBox  SelectionChanged ="cboHeaders_SelectionChanged"  Width ="200"  HorizontalAlignment ="Left" > @H_404_4@

                
< ComboBoxItem  Content ="列头和行头均显示"  Tag ="All"   /> @H_404_4@

                
< ComboBoxItem  Content ="只显示列头(认值)"  Tag ="Column"  IsSelected ="True"   /> @H_404_4@

                
< ComboBoxItem  Content ="只显示行头"  Tag ="Row"   /> @H_404_4@

                
< ComboBoxItem  Content ="列头和行头均不显示"  Tag ="None"   /> @H_404_4@

            
</ ComboBox > @H_404_4@

@H_404_4@

        
</ StackPanel > @H_404_4@

@H_404_4@

        
<!-- @H_404_4@

        GridLinesVisibility - 表格分隔线显示方式 [System.Windows.Controls.DataGridGridLinesVisibility枚举]@H_404_4@

            DataGridGridLinesVisibility.None - 都不显示@H_404_4@

            DataGridGridLinesVisibility.Horizontal - 只显示水平分隔线@H_404_4@

            DataGridGridLinesVisibility.Vertical - 只显示垂直分隔线认值@H_404_4@

            DataGridGridLinesVisibility.All - 显示水平和垂直分隔线@H_404_4@

        RowBackground - 奇数数据行背景@H_404_4@

        AlternatingRowBackground - 偶数数据行背景@H_404_4@

        
--> @H_404_4@

        
< data:DataGrid  x:Name ="DataGrid1"  Margin ="5" @H_404_4@

            Width
="400"  Height ="200" @H_404_4@

            AutoGenerateColumns
="False" @H_404_4@

            GridLinesVisibility
="All" @H_404_4@

            RowBackground
="White" @H_404_4@

            AlternatingRowBackground
="Yellow" @H_404_4@

            ItemsSource
=" {Binding} " @H_404_4@

        
> @H_404_4@

@H_404_4@

            
< data:DataGrid.Columns > @H_404_4@

            @H_404_4@

                
<!-- @H_404_4@

                IsReadOnly - 该列的单元格是否只读@H_404_4@

                CanUserReorder - 该列是否可以拖动@H_404_4@

                CanUserResize - 该列是否可以改变列宽@H_404_4@

                CanUserSort - 该列是否可以排序@H_404_4@

                SortMemberPath - 该列的排序字段@H_404_4@

                
--> @H_404_4@

                
< data:DataGridTextColumn  Header ="姓名"  Binding =" {Binding Name} "  @H_404_4@

                    IsReadOnly
="False" @H_404_4@

                    CanUserReorder
="True"  @H_404_4@

                    CanUserResize
="True"  @H_404_4@

                    CanUserSort
="True"  @H_404_4@

                    SortMemberPath
="Name"  @H_404_4@

                
/> @H_404_4@

                @H_404_4@

                
<!-- @H_404_4@

                Width - 列宽@H_404_4@

                    Auto - 根据列头内容的宽度和单元格内容的宽度自动设置列宽@H_404_4@

                    SizetoCells - 根据单元格内容的宽度设置列宽@H_404_4@

                    SizetoHeader - 根据列头内容的宽度设置列宽@H_404_4@

                    Pixel - 像素值@H_404_4@

                
--> @H_404_4@

                
< data:DataGridTextColumn  Header ="生日"  Binding =" {Binding DayOfBirth} "  Width ="100"   /> @H_404_4@

                
< data:DataGridTextColumn  Header ="年龄"  Binding =" {Binding Age} "   /> @H_404_4@

                
< data:DataGridCheckBoxColumn  Header ="性别"  Binding =" {Binding Male} "   /> @H_404_4@

                
< data:DataGridTextColumn  Header ="姓名"  Binding =" {Binding Name} "   /> @H_404_4@

                
< data:DataGridTextColumn  Header ="生日"  Binding =" {Binding DayOfBirth} "   /> @H_404_4@

                
< data:DataGridTextColumn  Header ="年龄"  Binding =" {Binding Age} "   /> @H_404_4@

                
< data:DataGridCheckBoxColumn  Header ="性别"  Binding =" {Binding Male} "   /> @H_404_4@

            
</ data:DataGrid.Columns > @H_404_4@

@H_404_4@

        
</ data:DataGrid > @H_404_4@

@H_404_4@

    
</ StackPanel > @H_404_4@

</ UserControl > @H_404_4@

@H_404_4@ DataGrid02.xaml.cs @H_404_4@

using  System;@H_404_4@

using  System.Collections.Generic;@H_404_4@

using  System.Linq;@H_404_4@

using  System.Net;@H_404_4@

using  System.Windows;@H_404_4@

using  System.Windows.Controls;@H_404_4@

using  System.Windows.Documents;@H_404_4@

using  System.Windows.Input;@H_404_4@

using  System.Windows.Media;@H_404_4@

using  System.Windows.Media.Animation;@H_404_4@

using  System.Windows.Shapes;@H_404_4@

@H_404_4@

namespace  Silverlight20.Data@H_404_4@

{@H_404_4@

    
public partial class DataGrid02 : UserControl@H_404_4@

    
{@H_404_4@

        
public DataGrid02()@H_404_4@

        
{@H_404_4@

            InitializeComponent();@H_404_4@

@H_404_4@

            BindData();@H_404_4@

        }
@H_404_4@

@H_404_4@

        
void BindData()@H_404_4@

        
{@H_404_4@

            var source 
= new Data.sourceData();@H_404_4@

@H_404_4@

            
// 设置 DataGrid 的数据源@H_404_4@

            DataGrid1.DataContext = source.GetData();@H_404_4@

        }
@H_404_4@

@H_404_4@

        
private void chkReadOnly_Changed(object sender, RoutedEventArgs e)@H_404_4@

        
{@H_404_4@

            CheckBox chk 
= sender as CheckBox;@H_404_4@

@H_404_4@

            
// IsReadOnly - 单元格是否只读。认值 false@H_404_4@

            DataGrid1.IsReadOnly = (bool)chk.IsChecked;@H_404_4@

        }
@H_404_4@

@H_404_4@

        
private void chkFreezeColumn_Changed(object sender, RoutedEventArgs e)@H_404_4@

        
{@H_404_4@

            CheckBox chk 
= sender as CheckBox;@H_404_4@

@H_404_4@

            
// FrozenColumnCount - 表格所冻结的列的总数(从左边开始数)。认值 0@H_404_4@

            if (chk.IsChecked == true)@H_404_4@

                DataGrid1.FrozenColumnCount 
= 1;@H_404_4@

            
else if (chk.IsChecked == false)@H_404_4@

                DataGrid1.FrozenColumnCount 
= 0;@H_404_4@

        }
@H_404_4@

       @H_404_4@

        
private void chkSelectionMode_Changed(object sender, RoutedEventArgs e)@H_404_4@

        
{@H_404_4@

            CheckBox chk 
= sender as CheckBox;@H_404_4@

@H_404_4@

            
// SelectionMode - 行的选中模式 [System.Windows.Controls.DataGridSelectionMode枚举]@H_404_4@

            
//     DataGridSelectionMode.Single - 只能单选@H_404_4@

            
//     DataGridSelectionMode.Extended - 可以多选(通过Ctrl或Shift的配合)。认值@H_404_4@

            if (chk.IsChecked == true)@H_404_4@

                DataGrid1.SelectionMode 
= DataGridSelectionMode.Single;@H_404_4@

            
else if (chk.IsChecked == false)@H_404_4@

                DataGrid1.SelectionMode 
= DataGridSelectionMode.Extended;@H_404_4@

        }
@H_404_4@

@H_404_4@

        
private void chkColReorder_Changed(object sender, RoutedEventArgs e)@H_404_4@

        
{@H_404_4@

            CheckBox chk 
= sender as CheckBox;@H_404_4@

@H_404_4@

            
// CanUserReorderColumns - 是否允许拖动列。认值 true@H_404_4@

            if (DataGrid1 != null)@H_404_4@

                DataGrid1.CanUserReorderColumns 
= (bool)chk.IsChecked;@H_404_4@

        }
@H_404_4@

@H_404_4@

        
private void chkColResize_Changed(object sender, RoutedEventArgs e)@H_404_4@

        
{@H_404_4@

            CheckBox chk 
= sender as CheckBox;@H_404_4@

@H_404_4@

            
// CanUserResizeColumns - 是否允许改变列的宽度。认值 true@H_404_4@

            if (DataGrid1 != null)@H_404_4@

                DataGrid1.CanUserResizeColumns 
= (bool)chk.IsChecked;@H_404_4@

        }
@H_404_4@

@H_404_4@

        
private void chkColSort_Changed(object sender, RoutedEventArgs e)@H_404_4@

        
{@H_404_4@

            CheckBox chk 
= sender as CheckBox;@H_404_4@

@H_404_4@

            
// CanUserSortColumns - 是否允许列的排序。认值 true@H_404_4@

            if (DataGrid1 != null)@H_404_4@

                DataGrid1.CanUserSortColumns 
= (bool)chk.IsChecked;@H_404_4@

        }
@H_404_4@

@H_404_4@

        
private void chkCustomGridLineVertical_Changed(object sender, RoutedEventArgs e)@H_404_4@

        
{@H_404_4@

            CheckBox chk 
= sender as CheckBox;@H_404_4@

@H_404_4@

            
if (DataGrid1 != null)@H_404_4@

            
@H_623_4040@{@H_404_4@

                
// VerticalGridLinesBrush - 改变表格的垂直分隔线的 Brush@H_404_4@

                if (chk.IsChecked == true)@H_404_4@

                    DataGrid1.VerticalGridLinesBrush 
= new SolidColorBrush(Colors.Blue);@H_404_4@

                
else@H_404_4@

                    DataGrid1.VerticalGridLinesBrush 
= new SolidColorBrush(Color.FromArgb(255223227230));@H_404_4@

            }
@H_404_4@

        }
@H_404_4@

@H_404_4@

        
private void chkCustomGridLineHorizontal_Changed(object sender, RoutedEventArgs e)@H_404_4@

        
{@H_404_4@

            CheckBox chk 
= sender as CheckBox;@H_404_4@

@H_404_4@

            
if (DataGrid1 != null)@H_404_4@

            
{@H_404_4@

                
// HorizontalGridLinesBrush - 改变表格的水平分隔线的 Brush@H_404_4@

                if (chk.IsChecked == true)@H_404_4@

                    DataGrid1.HorizontalGridLinesBrush 
= new SolidColorBrush(Colors.Blue);@H_404_4@

                
else@H_404_4@

                    DataGrid1.HorizontalGridLinesBrush 
= new SolidColorBrush(Color.FromArgb(255230));@H_404_4@

            }
@H_404_4@

        }
@H_404_4@

@H_404_4@

        
private void cboHeaders_SelectionChanged(object sender, RoutedEventArgs e)@H_404_4@

        
{@H_404_4@

            ComboBoxItem cbi 
= ((ComboBox)sender).SelectedItem as ComboBoxItem;@H_404_4@

@H_404_4@

            
if (DataGrid1 != null)@H_404_4@

            
{@H_404_4@

                
// HeadersVisibility - 表头(包括列头和行头)的显示方式 [System.Windows.Controls.DataGridHeadersVisibility枚举]@H_404_4@

                
//     DataGridHeadersVisibility.All - 列头和行头均显示@H_404_4@

                
//     DataGridHeadersVisibility.Column - 只显示列头。认值@H_404_4@

                
//     DataGridHeadersVisibility.Row - 只显示行头@H_404_4@

                
//     DataGridHeadersVisibility.None - 列头和行头均不显示@H_404_4@

                if (cbi.Tag.ToString() == "All")@H_404_4@

                    DataGrid1.HeadersVisibility 
= DataGridHeadersVisibility.All;@H_404_4@

                
else if (cbi.Tag.ToString() == "Column")@H_404_4@

                    DataGrid1.HeadersVisibility 
= DataGridHeadersVisibility.Column;@H_404_4@

                
else if (cbi.Tag.ToString() == "Row")@H_404_4@

                    DataGrid1.HeadersVisibility 
= DataGridHeadersVisibility.Row;@H_404_4@

                
else if (cbi.Tag.ToString() == "None")@H_404_4@

                    DataGrid1.HeadersVisibility 
= DataGridHeadersVisibility.None;@H_404_4@

            }
@H_404_4@

        }
@H_404_4@

    }
@H_404_4@

}
@H_404_4@

@H_404_4@@H_404_4@ 3、ListBox.xaml @H_404_4@

< UserControl  x:Class ="Silverlight20.Data.ListBox" @H_404_4@

    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  @H_404_4@

    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml" > @H_404_4@

    
< StackPanel  HorizontalAlignment ="Left" > @H_404_4@

@H_404_4@

        
<!-- @H_404_4@

        ListBox.ItemTemplate - ListBox 的选项模板@H_404_4@

            DataTemplate - 手工定义 ListBox 的选项数据@H_404_4@

        
--> @H_404_4@

        
< ListBox  x:Name ="ListBox1"  Margin ="5"  Width ="200"  Height ="100" > @H_404_4@

            
< ListBox.ItemTemplate > @H_404_4@

                
< DataTemplate > @H_404_4@

                    
< StackPanel  Orientation ="Horizontal" > @H_404_4@

                        
< TextBlock  Text =" {Binding Name} "  Margin ="5"   /> @H_404_4@

                        
< TextBlock  Text =" {Binding Age} "  Margin ="5"   /> @H_404_4@

                    
</ StackPanel > @H_404_4@

                
</ DataTemplate > @H_404_4@

            
</ ListBox.ItemTemplate > @H_404_4@

        
</ ListBox > @H_404_4@

        @H_404_4@

    
</ StackPanel > @H_404_4@

</ UserControl > @H_404_4@

@H_404_4@ ListBox.xaml.cs @H_404_4@

using  System;@H_404_4@

using  System.Collections.Generic;@H_404_4@

using  System.Linq;@H_404_4@

using  System.Net;@H_404_4@

using  System.Windows;@H_404_4@

using  System.Windows.Controls;@H_404_4@

using  System.Windows.Documents;@H_404_4@

using  System.Windows.Input;@H_404_4@

using  System.Windows.Media;@H_404_4@

using  System.Windows.Media.Animation;@H_404_4@

using  System.Windows.Shapes;@H_404_4@

@H_404_4@

namespace  Silverlight20.Data@H_404_4@

{@H_404_4@

    
public partial class ListBox : UserControl@H_404_4@

    
{@H_404_4@

        
public ListBox()@H_404_4@

@H_666_5027@

        
{@H_404_4@

            InitializeComponent(); @H_404_4@

            @H_404_4@

            BindData();@H_404_4@

        }
@H_404_4@

@H_404_4@

        
void BindData()@H_404_4@

        
{@H_404_4@

            var source 
= new Data.sourceData();@H_404_4@

@H_404_4@

            
// 设置 ListBox 的数据源@H_404_4@

            ListBox1.ItemsSource = source.GetData();@H_404_4@

        }
@H_404_4@

    }
@H_404_4@

}
@H_404_4@

@H_404_4@@H_404_4@ OK @H_404_4@[源码下载]

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

相关推荐