日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

win8+XAML Binding(数据绑定)

發(fā)布時(shí)間:2025/6/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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?
  • ///?<summary>??
  • ????///?A?class?that?can?be?used?to?bind?data?containing?text?and?image.??
  • ????///?</summary>??
  • ????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ò),歡迎將生活随笔推薦給好友。