亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C# WPF ListView控件的實例詳解

2019-10-29 21:08:14
字體:
來源:轉載
供稿:網友

C# WPF ListView控件的實例詳解

C#的WPF作為現在微軟主流的桌面程序開發平臺,相比過去的MFC時代,有了非常多的不同。本人剛從MFC平臺轉過來,以為可以輕松上手,哪知碰到了很多問題,十分不解。不得不乖乖回去看了本書,再繼續回到邊左邊邊學的路上。在這邊也推薦《深入淺出WPF》這本書,拿來上手還是極好的。

    由于WPF以數據驅動UI的設計理念,很多控件用起來都與之前平臺的相差很多,ListView控件算是有代表性的,這是進化的成果。關于該控件的應該,很多參考了這篇博文,如覺本人記述不清楚,可去查閱。

    WPF的代碼分為前端和后端兩部分,前端為UI,負責與用戶進行交互;而后端則負責算法和數據的執行。由于這種機制,我們程序員對兩端都需要有一個大概的了解,且主要注重于后端,這點相比以前混起來的機制實在是好太多。

    ListView控件的XAML代碼大致如下書寫:

<ListView x:Name="listView" Height="165" VerticalAlignment="Top" HorizontalAlignment="Left" Width="604" BorderThickness="0,0,0,1" BorderBrush="#FFC8CCD4">   <ListView.View>     <!--設置列標簽并將列成員與一個變量名稱相綁定,以便后臺鏈接修改-->     <GridView>       <GridViewColumn Header="姓名" Width="100" DisplayMemberBinding="{Binding Path=Name}"/>       <GridViewColumn Header="工作年限" Width="100" DisplayMemberBinding="{Binding Path=WorkYears}"/>       <GridViewColumn Header="工作電話" Width="100" DisplayMemberBinding="{Binding Path=WorkPhoneNumber}"/>       <GridViewColumn Header="郵箱" Width="100" DisplayMemberBinding="{Binding Path=Email}"/>     </GridView>   </ListView.View> </ListView> 

    代碼中我們設置了一個四列,列項分別為“姓名”、“工作年限”、“工作電話”和“郵箱”的列表,并將各項的成員分別與一個變量名稱相綁定。單單寫這些代碼就已經可以看到界面上有一個對應的列表出現,且可以編譯運行。前端的工作也大致結束(定義出控件大致外觀和給出綁定接口),具體數據內容,可交給后端來綁定。

    接下來我們來寫后端的c#代碼:

    先定義一個類,這個類中的變量將與上面列表項綁定的變量一一對應,這樣我們實例化一個對象便將對應于列表的一行。

class personalInfo//個人信息類 {   private string _name;   private int _workYears;   private string _workPhoneNumber;   private string _email;   public string Email//get和set分別為只讀和只寫,這是綁定的正常寫法,Email為我們要進行綁定的一個屬性   {     get { return _email; }     set { _email = value; }   }   public string WorkPhoneNumber   {     get { return _workPhoneNumber; }     set { _workPhoneNumber = value; }   }   public int WorkYears   {     get { return _workYears; }     set { _workYears = value; }   }   public string Name   {     get { return _name; }     set { _name = value; }   }   public personalInfo(string name, int workYears, string workPhoneNumber, string email)//構造函數   {     _name = name;     _workYears = workYears;     _workPhoneNumber = workPhoneNumber;     _email = email;   } } 

    定義了上面的類之后,我們在代碼中使用System.Collections.ObjectModel這個命名空間,然后使用“ObervableCollection”即“動態數據集合類”來管理我們的類對象。

ObservableCollection<personalInfo> personalInfoList = new ObservableCollection<personalInfo>(); 

    之后,給數據集合添加類成員

personalInfoList.Add(new personalInfo("李白", 10, "134124", "libai@hotmail.com")); personalInfoList.Add(new personalInfo("杜甫", 2, "242354", "dufu@hotmail.com")); personalInfoList.Add(new personalInfo("蘇軾", 4, "345356", "sushi@hotmail.com")); personalInfoList.Add(new personalInfo("李清照", 3, "453546", "liqingzhao@hotmail.com")); 

    最后,把數據和UI綁定在一起便大功告成了

listView.ItemsSource = personalInfoList; 

    上面的代碼編譯之后便能看到列表框和里面的數據,由于“ObervableCollection”在數據添加和刪除的時候后發送消息給UI,所以我們在添加和刪除一項數據的時候UI會做相應的修改。然而如果修改類里面的內容的時候則不行,因為修改的時候沒有發送消息通知UI,所以我們還需要給“personalInfo”類定義消息通知接口,讓其數據發生改變的時候也給UI發送消息。該類修改如下(需要添加System.ComponentModel命名空間):

class personalInfo: INotifyPropertyChanged //個人信息類 {   private string _name;   private int _workYears;   private string _workPhoneNumber;   private string _email;    public event PropertyChangedEventHandler PropertyChanged;    public string Email//get和set為只讀和只寫,體現C#l   {     get { return _email; }     set     {       _email = value;       PropertyChanged(this, new PropertyChangedEventArgs("Email"));     }   }   public string WorkPhoneNumber   {     get { return _workPhoneNumber; }     set     {       _workPhoneNumber = value;       PropertyChanged(this, new PropertyChangedEventArgs("WorkPhoneNumber"));     }   }   public int WorkYears   {     get { return _workYears; }     set     {       _workYears = value;       PropertyChanged(this, new PropertyChangedEventArgs("WorkYears"));     }   }   public string Name   {     get { return _name; }     set     {       _name = value;       PropertyChanged(this, new PropertyChangedEventArgs("Name"));     }   }   public personalInfo(string name, int workYears, string workPhoneNumber, string email)//構造函數   {     _name = name;     _workYears = workYears;     _workPhoneNumber = workPhoneNumber;     _email = email;   } } 

    這樣,我們便實現了ListView控件的基本綁定、修改和顯示功能了。

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产色综合久久不卡98| 精品国产鲁一鲁一区二区张丽| 日韩中文字幕视频在线观看| 国产欧美日韩中文| 日本在线观看天堂男亚洲| 欧美激情视频在线观看| 国产一区二区在线免费| 97视频人免费观看| 97久久精品人搡人人玩| 亚洲精品视频免费在线观看| 日韩中文字幕免费视频| 欧美极品在线视频| 欧美大秀在线观看| 精品人伦一区二区三区蜜桃免费| 综合国产在线观看| 亚洲free嫩bbb| 欧美一级淫片播放口| 国产精品香蕉在线观看| 国产精品一区二区久久久久| 国产精品一区二区三区成人| 懂色aⅴ精品一区二区三区蜜月| 欧美在线一级va免费观看| 成人羞羞国产免费| 亚洲丝袜在线视频| 欧美色播在线播放| 在线国产精品播放| 国产日产亚洲精品| 国产亚洲精品久久久久久777| 九色成人免费视频| 国产z一区二区三区| 岛国视频午夜一区免费在线观看| 国产精品久久久久久久美男| 亚洲欧美激情一区| 91精品国产成人| 91探花福利精品国产自产在线| 精品国产乱码久久久久久婷婷| 国产成人短视频| 日韩欧美在线播放| 久久久噜久噜久久综合| 欧美成人精品在线视频| 欧美在线性爱视频| 亚洲图片在区色| 亚洲自拍偷拍色图| 91免费高清视频| 久久精品国产亚洲| 国产成人精品视| 亚洲高清福利视频| 中文字幕自拍vr一区二区三区| 国产欧美日韩中文字幕| 91九色国产社区在线观看| 免费99精品国产自在在线| 日本欧美精品在线| 韩国三级日本三级少妇99| 亚洲www永久成人夜色| 亚洲乱码国产乱码精品精天堂| 亚洲精品成人久久| 亚洲男人天天操| 蜜月aⅴ免费一区二区三区| 91国内在线视频| 亚洲国产精品一区二区三区| 日本欧美黄网站| 日韩精品免费在线视频观看| 欧美成人亚洲成人日韩成人| 国产欧美久久久久久| 色悠久久久久综合先锋影音下载| 国产免费一区二区三区在线观看| 国产精品久久77777| 欧美不卡视频一区发布| 最近免费中文字幕视频2019| 91精品国产高清久久久久久| 成人福利网站在线观看| 搡老女人一区二区三区视频tv| 中文字幕日韩av综合精品| 午夜精品久久久99热福利| 亚洲日本成人女熟在线观看| 日韩av综合中文字幕| 九色成人免费视频| 精品久久在线播放| 日韩在线观看成人| 欧美在线视频观看免费网站| 一本一本久久a久久精品牛牛影视| 中文字幕精品一区二区精品| 欧美一级视频免费在线观看| 国产成人精品在线观看| 国产精品va在线播放我和闺蜜| 久久久亚洲福利精品午夜| 国产精品成人在线| 黄色一区二区在线| 久久中文字幕一区| 国产精品国产亚洲伊人久久| 欧美人与物videos| 亚洲成人激情在线| 久久九九全国免费精品观看| 91黑丝高跟在线| 亚洲人成电影网站色www| 中文字幕久精品免费视频| 国产精品视频色| 日本三级韩国三级久久| 成人久久久久久| 国产精品久久久久久影视| 97在线看免费观看视频在线观看| 欧美日韩午夜视频在线观看| 8x海外华人永久免费日韩内陆视频| 国产精品久久电影观看| 91青草视频久久| 韩剧1988免费观看全集| 亚洲图片欧美日产| 91亚洲国产精品| 亚洲大尺度美女在线| 国模极品一区二区三区| 九九热r在线视频精品| 亚洲欧美另类国产| 国产精品吊钟奶在线| 亚洲人a成www在线影院| 国产精品爽黄69天堂a| 亚洲国产精品va在线看黑人动漫| 国产一区二区丝袜高跟鞋图片| 欧美疯狂xxxx大交乱88av| 亚洲一区二区三区777| 国内精品国产三级国产在线专| 日韩一区二区三区国产| 色先锋久久影院av| 亚洲黄色av网站| 亚洲国产精品va在看黑人| 国产美女久久久| 日韩欧美在线免费观看| 国产日韩在线亚洲字幕中文| 欧美日韩国产二区| 日韩高清电影好看的电视剧电影| 91九色国产社区在线观看| 丝袜美腿亚洲一区二区| 综合av色偷偷网| 日韩美女中文字幕| 亚洲精品久久久久久下一站| 久久久国产成人精品| 成人动漫网站在线观看| 97视频国产在线| 中文字幕免费国产精品| 欧美一级片一区| 亚洲精品在线视频| 久久精品国产成人精品| 91精品国产精品| 欧美午夜久久久| 国语自产精品视频在线看抢先版图片| 欧美精品精品精品精品免费| 国产成人高清激情视频在线观看| 成人精品久久久| 成人国产精品色哟哟| 狠狠躁夜夜躁人人躁婷婷91| 精品成人69xx.xyz| 亚洲人成人99网站| 粗暴蹂躏中文一区二区三区| 久久伊人精品天天| 亚洲国产成人精品电影| 成人激情免费在线| 亚洲国产精品推荐| 亚洲永久免费观看| 久久精品国产一区二区三区| 亚洲国产另类 国产精品国产免费| 国产精品ⅴa在线观看h| 久久免费视频在线观看| 亚洲一区二区三区成人在线视频精品| 欧美国产日韩一区二区| 国产丝袜一区二区|