一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Silverlight實用竅門系列:75.Silverlight中DataGrid制作復(fù)雜...

 Jcstone 2013-04-28

Silverlight實用竅門系列:75.Silverlight中DataGrid制作復(fù)雜表頭

  
在Silverlight中的DataGrid我們經(jīng)常會覺得表頭太過于簡單,對于某一些業(yè)務(wù)中我們可能需要展現(xiàn)多層次的表頭。本文將結(jié)合DataGridTemplateColumn和Style解決這種問題。

  一:引用命名空間  xmlns:dgCloumn="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data",不需要單獨引用其他的DLL。這個命名空間是為了讓我們聲明的樣式指定類型為DataGridColumnHeader。

  二:編寫DataGrid表頭樣式如下:

復(fù)制代碼
        <Style x:Key="CityNumStyle"   TargetType="dgCloumn:DataGridColumnHeader">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Grid x:Name="Root">
                        <Rectangle x:Name="BackgroundGradient" Fill="#eee"  Stretch="Fill" Grid.ColumnSpan="2" />
                        <ContentPresenter Content="區(qū)號" Grid.Row="2" VerticalAlignment="Center" 
                                                  HorizontalAlignment="Center" />
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="CityNameStyle"   TargetType="dgCloumn:DataGridColumnHeader">
            <Setter Property="Foreground" Value="#222"/>
            <Setter Property="HorizontalContentAlignment" Value="Left"/>
            <Setter Property="VerticalContentAlignment" Value="Center"/>
            <Setter Property="IsTabStop" Value="False"/>
            <Setter Property="SeparatorBrush" Value="#ccc"/>
            <Setter Property="Padding" Value="8"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Grid x:Name="Root">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition Width="Auto"/>
                            </Grid.ColumnDefinitions>
                            <Rectangle x:Name="BackgroundRectangle" Fill="#ccc" Stretch="Fill" Grid.ColumnSpan="2"/>
                            <Rectangle x:Name="BackgroundGradient" Fill="#eee"  Stretch="Fill" Grid.ColumnSpan="2">
                            </Rectangle>
                            <Grid HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"     
                                  VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="20" />
                                    <RowDefinition Height="1" />
                                    <RowDefinition Height="20" />
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="100"/>
                                    <ColumnDefinition Width="1" />
                                    <ColumnDefinition Width="100"/>
                                </Grid.ColumnDefinitions>
                                <!--設(shè)置標(biāo)題名-->
                                <ContentPresenter Content="省份城市" 
                                                  VerticalAlignment="Center" HorizontalAlignment="Center"    
                                                  Grid.ColumnSpan="3" />
                                <!--設(shè)置間隔線-->
                                <Rectangle Fill="#ccc" VerticalAlignment="Stretch" Height="1"       
                                           Visibility="Visible" Grid.Row="1" Grid.ColumnSpan="3" />
                                <ContentPresenter Content="省名" Grid.Row="2" VerticalAlignment="Center" 
                                                  HorizontalAlignment="Center" />
                                <Rectangle Fill="#ccc" VerticalAlignment="Stretch" Width="1"     
                                           Visibility="Visible" Grid.Row="2" Grid.Column="1" />
                                <ContentPresenter Content="城市" Grid.Row="2" Grid.Column="2"   
                                                  VerticalAlignment="Center" HorizontalAlignment="Center" />
                            </Grid>
                            <Rectangle x:Name="VerticalSeparator" Fill="#ccc"           
                                       VerticalAlignment="Stretch" Width="1" Visibility="Visible"       
                                       Grid.Row="1" Grid.Column="1"/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
復(fù)制代碼

  三:為DataGrid設(shè)置Header綁定,需要注意的是在DataGridTemplateColumn綁定行中,我們需要手動設(shè)置綁定列為兩列,分別綁定兩個屬性。如下:

復(fù)制代碼
    <Grid x:Name="LayoutRoot" Background="White">
        <sdk:DataGrid AutoGenerateColumns="False" Height="400" HorizontalAlignment="Left"  VerticalAlignment="Top"
                      Name="dataGrid1" Width="305">
            <sdk:DataGrid.Columns>
                <sdk:DataGridTemplateColumn Header="sec" HeaderStyle="{StaticResource CityNameStyle}">
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <sdk:Label  Content="{Binding AddrName}" Width="100"/>
                                <Rectangle Fill="#ccc" VerticalAlignment="Stretch" Width="1" />
                                <sdk:Label  Content="{Binding CityName}" Width="100"/>
                            </StackPanel>
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                </sdk:DataGridTemplateColumn>
                <sdk:DataGridTextColumn HeaderStyle="{StaticResource CityNumStyle}" Binding="{Binding TelNum}" Width="100" />
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>
    </Grid>
復(fù)制代碼

  四:我們看后臺代碼如下:

復(fù)制代碼
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            this.dataGrid1.ItemsSource = CityInformation.GetInfo();
        }
    }

    /// <summary> 
    /// 城市信息的實體類 
    /// </summary> 
    public class CityInformation
    {
        private string _AddrName;
        private string _CityName;
        private string _TelNum;

        public string AddrName
        {
            get { return _AddrName; }
            set { _AddrName = value; }
        }
        public string CityName
        {
            get { return _CityName; }
            set { _CityName = value; }
        }
        public string TelNum
        {
            get { return _TelNum; }
            set { _TelNum = value; }
        }
        public static List<CityInformation> GetInfo()
        {
            return new List<CityInformation>() { 
                new CityInformation(){ AddrName="四川", CityName="成都",TelNum="028"},
                new CityInformation(){ AddrName="廣東", CityName="廣州",TelNum="021"},
                new CityInformation(){ AddrName="廣西", CityName="南寧",TelNum="0771"},
                new CityInformation(){ AddrName="貴州", CityName="貴陽",TelNum="0851"}
            };
        }
    }
復(fù)制代碼

  五:效果如下圖,如需源碼請點擊 SLDGHeader.zip 下載。


 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美午夜不卡在线观看| 日韩亚洲激情在线观看| 国产老女人性生活视频| 丰满人妻一二区二区三区av| 日韩成人h视频在线观看| 亚洲品质一区二区三区| 欧美自拍偷自拍亚洲精品| 亚洲天堂一区在线播放| 精品人妻av区波多野结依| 日本精品最新字幕视频播放 | 免费大片黄在线观看日本| 观看日韩精品在线视频| 在线观看视频国产你懂的| 香蕉网尹人综合在线观看| 久久99爱爱视频视频| 国产日韩熟女中文字幕| 国产亚洲欧美日韩精品一区 | 国产小青蛙全集免费看| 91日韩在线视频观看| 在线亚洲成人中文字幕高清| 精品日韩av一区二区三区| 国产精品久久三级精品| 国产高清一区二区不卡| 日本中文在线不卡视频| 国产熟女一区二区精品视频| 日韩综合国产欧美一区| 欧美精品久久99九九| 国产成人精品一区在线观看| 日本精品啪啪一区二区三区| 九九热精品视频在线观看| 欧美日韩有码一二三区 | 在线免费不卡亚洲国产| 日韩免费av一区二区三区| 日本熟女中文字幕一区| 大尺度剧情国产在线视频| 精品一区二区三区三级视频| 国产高清精品福利私拍| 隔壁的日本人妻中文字幕版| 午夜小视频成人免费看| 亚洲第一视频少妇人妻系列 | 日韩中文高清在线专区|