生活随笔
收集整理的這篇文章主要介紹了
win8+XAML Binding(数据绑定)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
第一次接觸Binding是用到listview的時(shí)候,ListView中如果要?jiǎng)討B(tài)顯示一些內(nèi)容,我一開始想的就是動(dòng)態(tài)生成一個(gè)item,然后插入。。。
其實(shí)用Binding就不用在代碼中涉及l(fā)istview的一些控件的操作了。
下面是我用ListView顯示圖片的一個(gè)例子:
[html] view plaincopyprint?
<ListView?x:Name="ImageList"?">??????????????????????<ListView.ItemTemplate?>??????????????????????????<DataTemplate>??????????????????????????????<Image?Opacity="0.7"?Width="150"?Height="125"?Stretch="UniformToFill"?Source="{Binding}"?/>??????????????????????????</DataTemplate>??????????????????????</ListView.ItemTemplate>??</ListView>??
在Image中定義了Source=“Binding”以后,我們在代碼中需要定義一個(gè)ObservableCollection對象,這個(gè)對象是專門來同步綁定GridView,ListView這些控件的。
[csharp] view plaincopyprint?
this.collImages?=?new?ObservableCollection<BitmapImage>();??this.ImageList.ItemsSource?=?collImages;??
就這么簡單,后面就只要在collImages中插入圖片就可以了。
?
但是,問題是:我如果想一個(gè)item既包含圖片又包含圖片相關(guān)的文字。如何進(jìn)行數(shù)據(jù)的綁定呢?
仔細(xì)看看上面ObservableCollection對象,就像數(shù)組一樣定義了類型,上面我定義的時(shí)BitmapImage類型;如果寫成string型,那么關(guān)聯(lián)的就是一些文字對象了。
所以只要自己寫一個(gè)類,包含圖片和文字的屬性,定義這樣的一個(gè)類型實(shí)現(xiàn)數(shù)據(jù)綁定就可以了:
[csharp] view plaincopyprint?
??????????????????public?class?MyListViewData??????{??????????public?BitmapImage?bitImg??{?get;?set;?}??????????public?string?strName?{?get;?set;?}????????????public?MyListViewData(BitmapImage?img,?string?name)??????????{??????????????bitImg?=?img;??????????????strName?=?name;??????????}??????}??
在綁定的時(shí)候,也要說明一下,在Image和TextBlock中分別Binding的是bitImg和strName:
[html] view plaincopyprint?
<ListView?x:Name="ImageList"?">??????????????????<ListView.ItemTemplate?>??????????????????????<DataTemplate>??????????????????????????<StackPanel?Width="100"?Height="100">??????????????????????????????<Image?Opacity="0.7"??Source="{Binding?bitImg}"?/>??????????????????????????????<TextBlock?Height="25"?Text="{Binding?strName}"??/>??????????????????????????</StackPanel>??????????????????????</DataTemplate>??????????????????</ListView.ItemTemplate>??</ListView>??
接下來就是定義一個(gè)ObservationCollection對象,就可以動(dòng)態(tài)綁定了
[csharp] view plaincopyprint?
ObservableCollection<MyListViewData>?listViewData?=?new?ObservableCollection<MyListViewData>();????this.ImageList.ItemsSource?=?pMainPage.listViewData;????listViewData.Add(new?MyListViewData(videoImg,?file.Name));??
好的,下面是一個(gè)效果圖:
總結(jié)
以上是生活随笔為你收集整理的win8+XAML Binding(数据绑定)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。