日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WPF數(shù)據(jù)模板輕松實(shí)現(xiàn)數(shù)據(jù)顯示

我們在進(jìn)行開發(fā)程序的時(shí)候,經(jīng)常會碰到要處理一個(gè)圖形界面的需求。微軟公司根據(jù)這一需求,開發(fā)了一個(gè)叫做WPF的圖形界面顯示工具。#t#

公司主營業(yè)務(wù):成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出即墨免費(fèi)做網(wǎng)站回饋大家。

在WPF中我們可以為自己的數(shù)據(jù)定制顯示方式,也就是說雖然某數(shù)據(jù)數(shù)據(jù)是一定的,但我們可以做到讓它的表現(xiàn)方式多種多樣,比如一個(gè)時(shí)間,在以前我們一般使用一個(gè)字符串(比如“12:03”)來顯示,但我們?yōu)槭裁淳筒荒茱@示一個(gè)小時(shí)鐘呢,其實(shí)這更合乎情理,利用WPF數(shù)據(jù)模板技術(shù)隨意并輕松地表現(xiàn)你的數(shù)據(jù).

WPF數(shù)據(jù)模板適用于Content Control類控件與Items Control類控件.

我們假設(shè)有如下一個(gè)類

  1. using System;  
  2. namespace Demo  
  3. {  
  4. public class People  
  5. {  
  6. private string name;  
  7. private string photo;  
  8. public People(string 
    name, string photo)  
  9. {  
  10. this.name = name;  
  11. this.photo = photo;  
  12. }  
  13. public string Name  
  14. {  
  15. get  
  16. {  
  17. return this.name;  
  18. }  
  19. set  
  20. {  
  21. this.name = value;  
  22. }  
  23. }  
  24. public string Photo  
  25. {  
  26. get  
  27. {  
  28. return this.photo;  
  29. }  
  30. set  
  31. {  
  32. this.photo = value;  
  33. }  
  34. }  
  35. }  

這個(gè)類很簡單地表示了一個(gè)人,他的姓名和他的照片(路徑)

如果在我們的軟件中有一個(gè)列表控件ListBox來顯示一個(gè)由多個(gè)人組成的列表,在.net 3.0以前我們可能就只能用文本來列出人的姓名而已,或者花不少的精力來重寫列表控件以便在列表中在顯示人名的同時(shí)顯示照片.

參考以下代碼:

 
 
 
  1. < ListBox x:Name="ListBox_
    PeopleList" ItemTemplate="
    {StaticResource MyTemplate}" /> 

我們定義了一個(gè)ListBox,并將其ItemTemplate制定為我們自定義的MyTemplate,也就是說列表項(xiàng)將按照MyTemplate制定的方式來顯示列表內(nèi)容。
這樣我們就可以發(fā)揮我們的想像力來自定義MyTemplate
為了能在XAML中使用我們的People類,我們需要將其名字空間引入,參考以下代碼:

 
 
 
  1. xmlns:demo="clr-nam
    espace:Demo"  

其中Demo是我們的People類所在的名字空間,以后可以使用demo來表示這個(gè)名字空間了.

下面的代碼來定義我們的MyTemplate的WPF數(shù)據(jù)模板,以便告訴我們的列表如何來顯示他的項(xiàng)目:

 
 
 
  1. < Window.Resources>   
  2. < !--列表模板--> 
  3. < DataTemplate x:Key="MyTemplate"
     DataType="{x:Type demo:People}"> 
  4. < Grid VerticalAlignment="Center" 
    HorizontalAlignment="Center" 
    Margin="4,4,4,4" > 
  5. < Grid.ColumnDefinitions> 
  6. < ColumnDefinition Width="Auto"/> 
  7. < ColumnDefinition Width="Auto"/> 
  8. < /Grid.ColumnDefinitions> 
  9. < Image Source="{Binding Photo}" 
    Width="50" Height="50" Grid.Column=
    "0" Grid.RowSpan="1"/> 
  10. < TextBlock Text="{Binding Name}" 
    Grid.Column="1" Grid.ColumnSpan="1" 
    HorizontalAlignment="Center" Vertical
    Alignment="Center"/> 
  11. < /Grid> 
  12. < /DataTemplate> 
  13. < /Window.Resources> 

我們將WPF數(shù)據(jù)模板定義為窗口的資源,資源保存在一個(gè)資源字典中的,x:Key="MyTemplate" 表示其在資源字典中的鍵,DataType="{x:Type demo:People}"表示該數(shù)據(jù)模板針對的數(shù)據(jù)類型是demo名字空間下的People類,接下來在Gird中我們定義了該數(shù)據(jù)模板的視覺樹,這也是我們的工作重心,即該視覺樹定義了如何顯示我們的數(shù)據(jù)。

我們使用了一個(gè)Image控件并將其Source綁定到People的Photo屬性上,這樣以便在該Imag控件上顯示照片,然后在Image的右邊我們使用一個(gè)TextBlock控件來顯示人名(將People的Name屬性綁定到TextBlock的Text屬性上)。

注意到這個(gè)數(shù)據(jù)模板實(shí)際上在干什么:它定義了People類型對象的表現(xiàn)方式,在這里是顯示People的照片并在照片的右方顯示姓名。

以后我們需要People對象按這種方式展示給用戶的時(shí)候,我們只要將該WPF數(shù)據(jù)模板指定給要顯示People對象的那個(gè)控件就可以了。

比如

 
 
 
  1. < ListBox x:Name=
    "ListBox_PeopleList" 
    ItemTemplate="{Static
    Resource MyTemplate}" /> 

就告訴我們的列表控件按照MyTemplate定義的方式來顯示其項(xiàng)目。

呵呵,這樣是不是比以前Code方式來打造一個(gè)個(gè)性列表控件來得更方便。


文章名稱:WPF數(shù)據(jù)模板輕松實(shí)現(xiàn)數(shù)據(jù)顯示
本文地址:http://www.5511xx.com/article/cdodoic.html