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

分享

WPF中的TreeView控件_銀光中國 Silverlight 資源 社區(qū) 論壇

 guanhaizhe 2011-01-18
時間:2010-12-24 01:18來源:百度空間 作者:2sws 點擊: 170次
TreeView繼承于HeaderedItemsControl類,而HeaderedItemsControl類又繼承于ItemsControl類,所也TreeView同時會擁有ItemsSource屬性設(shè)置數(shù)據(jù)源;DisplayMemberPath設(shè)置數(shù)據(jù)項顯示內(nèi)容;ItemContainerStyle屬性設(shè)置TreeViewItem數(shù)據(jù)項的樣式;ItemContainerStyleSelector屬性設(shè)置TreeViewItem數(shù)據(jù)項樣式選擇器;ItemsPanel屬性
  

  TreeView繼承于HeaderedItemsControl類,而HeaderedItemsControl類又繼承于ItemsControl類,所也TreeView同時會擁有ItemsSource屬性設(shè)置數(shù)據(jù)源;DisplayMemberPath設(shè)置數(shù)據(jù)項顯示內(nèi)容;ItemContainerStyle屬性設(shè)置TreeViewItem數(shù)據(jù)項的樣式;ItemContainerStyleSelector屬性設(shè)置TreeViewItem數(shù)據(jù)項樣式選擇器;ItemsPanel屬性設(shè)置數(shù)據(jù)項的容器;ItemsPanel屬性設(shè)置數(shù)據(jù)項容器的選擇器;GroupStyle屬性顯示數(shù)據(jù)分組;GroupStyleSelector屬性設(shè)置數(shù)據(jù)分組選擇器。

  與ListBoxItem不同的是每一個TreeViewItem都繼承于HeaderedItemsControl類所以TreeViewItem是一個列表型的容器(而ListBoxItem是內(nèi)容型的容器)。

  在聲明TreeViewItem的數(shù)據(jù)模板時也與ListBoxItem有所不同,它使用聲明數(shù)據(jù)模板。

  關(guān)于TreeView綁定數(shù)據(jù),及數(shù)據(jù)模板的使用的示例代碼如下所示:

  由于在樹中顯示數(shù)據(jù),所以使用了兩個嵌套的類型作為實例類,兩個實體類的代碼如下:

class MyClass:INotifyPropertyChanged
    {
        private string classname;
        private ObservableCollection<Stu> students;

        public string ClassName
        {
            get { return classname; }
            set
            {
                classname = value;
                OnPropertyChanged(new PropertyChangedEventArgs("ClassName"));
            }
        }

        public ObservableCollection<Stu> Students
        {
            get { return students; }
            set
            {
                students = value;
                OnPropertyChanged(new PropertyChangedEventArgs("Students"));
            }
        }

        #region INotifyPropertyChanged 成員
        public event PropertyChangedEventHandler PropertyChanged;

        public void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            if (PropertyChanged!=null)
            {
                PropertyChanged(this, e);
            }
        }
        #endregion
    }

 

    class Stu:INotifyPropertyChanged
    {

        private int myid;
        private string mynames;
        private int myage;
        private string mysex;
        private string myaddress;

        public int id
        {
            get { return myid; }
            set
            {
                myid = value;
                OnPropertyChanged(new PropertyChangedEventArgs("id"));
            }
        }

        public string names
        {
            get { return mynames; }
            set
            {
                mynames = value;
                OnPropertyChanged(new PropertyChangedEventArgs("names"));
            }
        }

        public int age
        {
            get { return myage; }
            set
            {
                myage = value;
                OnPropertyChanged(new PropertyChangedEventArgs("age"));
            }
        }

        public string sex
        {
            get { return mysex; }
            set
            {
                mysex = value;
                OnPropertyChanged(new PropertyChangedEventArgs("sex"));
            }
        }

        public string address
        {
            get { return myaddress; }
            set
            {
                myaddress = value;
                OnPropertyChanged(new PropertyChangedEventArgs("address"));
            }
        }

 

        #region INotifyPropertyChanged 成員

        public event PropertyChangedEventHandler PropertyChanged;

        public void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, e);
            }
        }

        #endregion
    }

 資源字典的XAML代碼如下所示:

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WPF中的TreeView控件.MyDictionary"
    xmlns:local="clr-namespace:WPF中的TreeView控件">
    
    <ObjectDataProvider x:Key="MyDataBase"
                        ObjectType="{x:Type local:wangjundatabase}"
                        MethodName="GetAllStu"
                        IsAsynchronous="True">
    </ObjectDataProvider>
    
    <HierarchicalDataTemplate x:Key="treeviewtemplate"ItemsSource="{Binding Path=Students}">
        <Grid Background="White">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" SharedSizeGroup="abc"/>
            </Grid.ColumnDefinitions>
            <Border Margin="2"
                CornerRadius="3"
                Background="DarkGoldenrod">
                <StackPanel>
                    <TextBlock Text="{Binding Path=ClassName}" Margin="5"></TextBlock>
                </StackPanel>
            </Border>
        </Grid>
        <HierarchicalDataTemplate.ItemTemplate>
           <HierarchicalDataTemplate>
                <Grid Background="White">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" SharedSizeGroup="abcd"/>
                    </Grid.ColumnDefinitions>
                    <Border Margin="2"
                                    CornerRadius="3"
                                    Background="Chocolate">
                        <StackPanel>
                            <TextBlock Text="{Binding Path=id}" Margin="5,1,5,1"></TextBlock>
                            <TextBlock Text="{Binding Path=names}" Margin="5,1,5,1"></TextBlock>
                            <TextBlock Text="{Binding Path=age}" Margin="5,1,5,1"></TextBlock>
                            <TextBlock Text="{Binding Path=sex}" Margin="5,1,5,1"></TextBlock>
                            <TextBlock Text="{Binding Path=address}" Margin="5,1,5,1"></TextBlock>
                        </StackPanel>
                    </Border>
                </Grid>               
           </HierarchicalDataTemplate>
        </HierarchicalDataTemplate.ItemTemplate>
    </HierarchicalDataTemplate>
    
</ResourceDictionary>

  窗體XAML代碼如下所示:

<Window x:Class="WPF中的TreeView控件.Window1"
    xmlns=
"http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x=
"http://schemas.microsoft.com/winfx/2006/xaml"
    Title=
"Window1" Height="600" Width="600" WindowStartupLocation="CenterScreen">
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/MyDictionary/MyDictionary.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    <Grid>
        <TreeView Margin="10" ItemTemplate="{StaticResource treeviewtemplate}"
                  ItemsSource=
"{Binding Source={StaticResource MyDataBase}}"
                  SnapsToDevicePixels=
"True" Grid.IsSharedSizeScope="True">
            <TreeView.ItemContainerStyle>
                <Style TargetType="TreeViewItem">
                    <Setter Property="Padding" Value="0"/>
                </Style>
            </TreeView.ItemContainerStyle>
        </TreeView>
    </Grid>
</Window>

本文來自2sws的博客,原文地址:http://hi.baidu.com/wangjunwangjuna/blog/item/0cb1de16977f7509962b4320.html

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    98精品永久免费视频| 成人日韩在线播放视频| 亚洲欧美国产精品一区二区| 国产一区国产二区在线视频| 国产精品白丝一区二区| 亚洲欧美中文日韩综合| 国内精品美女福利av在线| 日本不卡片一区二区三区| 香蕉久久夜色精品国产尤物| 久久国产精品亚州精品毛片| 国产精品一区二区丝袜| 白白操白白在线免费观看 | 欧美日韩精品综合一区| 大香蕉精品视频一区二区| 精品国产成人av一区二区三区| 国产又粗又黄又爽又硬的| 久久精品一区二区少妇| 日韩在线中文字幕不卡| 精品人妻久久一品二品三品| 亚洲精品成人综合色在线| 极品熟女一区二区三区| 国产亚洲欧美另类久久久| 国产一级精品色特级色国产| 国产真人无遮挡免费视频一区| 五月婷婷缴情七月丁香 | 免费精品一区二区三区| 色涩一区二区三区四区| 美女极度色诱视频在线观看| 亚洲人妻av中文字幕| 国产极品粉嫩尤物一区二区| 国产精品一区二区日韩新区| 中文字幕日韩一区二区不卡| 国产成人亚洲精品青草天美| 日本av在线不卡一区| 五月婷婷六月丁香亚洲| 国产又粗又猛又长又黄视频| 久久中文字幕中文字幕中文| 日韩av欧美中文字幕| 国产日韩在线一二三区| 亚洲国产性感美女视频 | 99日韩在线视频精品免费|