关于windows metro应用程序开发的一点小心得
2013-08-01 23:01
429 查看
做了将近半年的windowsmetro应用程序开发,从对这个平台毫无了解,到现在基本上都可以实现,经历了懵懂时候的无从下手,对C#编程中细节的不了解,对技术的模糊,到现在的基本上有所心得,实在是很不容易.今天是第一次在CSDN上写博客(基本上在所有互联网上都没写过两三次),如果写的不好,内容啥的没说清楚,还请各位大牛不要见笑!
一些最基本的简单的东西我就不赘述了(当然过于复杂的我也不会......),今天就跟大家介绍一下数据绑定.
一数据绑定
数据绑定在windows应用商店应用开发中是非常重要的,也是我们经常用到的东西.
下面我们介绍一下如何在GridView中实现数据绑定(ListView.FlipView中也是一样的)
首先在xmal中的代码:
我们可以从上面代码中看到,红色字体部分分别绑定到了三个不同的值上面,接下来,我们在C#代码中定义一个新的类
其中一定要注意每个成员的get和set属性!
然后,
以上是实现的效果.
之后我会和大家介绍一下CustomControl,自定义控件,这是一个能让你的应用程序非常个性化的控件,敬请期待!
一些最基本的简单的东西我就不赘述了(当然过于复杂的我也不会......),今天就跟大家介绍一下数据绑定.
一数据绑定
数据绑定在windows应用商店应用开发中是非常重要的,也是我们经常用到的东西.
下面我们介绍一下如何在GridView中实现数据绑定(ListView.FlipView中也是一样的)
首先在xmal中的代码:
<GridViewx:Name="ItemSource_GridView"Padding="20"Margin="20,45,20,20"ItemClick="ItemSource_GridView_ItemClick"IsItemClickEnabled="True">
<GridView.ItemTemplate>
<DataTemplate>
<BorderHeight="150"Width="250"Background="Purple">
<GridHeight="150"Width="250">
<ImageSource="{BindingItem_Thumbnail}"/>
<GridBackground="Black"Opacity="0.6"Height="40"VerticalAlignment="Bottom"/>
<StackPanelOrientation="Horizontal"VerticalAlignment="Bottom">
<ImageSource="{BindingItem_Image}"Width="36"Height="36"Margin="3,0,3,0"/>
<TextBlockText="{BindingItem_Name}"FontSize="18"VerticalAlignment="Center"TextTrimming="WordEllipsis"/>
</StackPanel>
</Grid>
</Border>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
我们可以从上面代码中看到,红色字体部分分别绑定到了三个不同的值上面,接下来,我们在C#代码中定义一个新的类
classLibraryItem
{
publicBitmapImageItem_Thumbnail{get;set;}
publicBitmapImageItem_Image{get;set;}
publicIStorageItemItem_Source{get;set;}
publicstringItem_Name{get;set;}
}
其中一定要注意每个成员的get和set属性!
然后,
List<LibraryItem>resourceList=newList<LibraryItem>();
try
{
IReadOnlyList<IStorageItem>storageItem=awaitKnownFolders.VideosLibrary.GetItemsAsync();
if(storageItem.Count>0)
{
foreach(IStorageItemiteminstorageItem)
{
if(item.IsOfType(StorageItemTypes.Folder))
{
StorageFolderfolder=itemasStorageFolder;
StorageItemThumbnailthumbnail=awaitfolder.GetThumbnailAsync(ThumbnailMode.VideosView,190);
if(thumbnail!=null)
{
using(IRandomAccessStreamstream=thumbnail.CloneStream())
{
BitmapImagebitmapImage=newBitmapImage();
bitmapImage.SetSource(stream);
LibraryItemfolderItem=newLibraryItem
{
Item_Thumbnail=bitmapImage,
Item_Source=folder,
Item_Name=folder.Name,
Item_Image=newBitmapImage(newUri("ms-appx:///Images/MainPage/videoFolder.png")),
};
resourceList.Add(folderItem);
}
}
else
{
LibraryItemfolderItem=newLibraryItem
{
Item_Thumbnail=null,
Item_Source=folder,
Item_Name=folder.Name,
Item_Image=newBitmapImage(newUri("ms-appx:///Images/MainPage/videoFolder.png")),
};
resourceList.Add(folderItem);
}
}
elseif(item.IsOfType(StorageItemTypes.File))
{
StorageFilefile=itemasStorageFile;
if(fileTypeFilter.Contains(file.FileType.ToLower()))
{
StorageItemThumbnailthumbnail=awaitfile.GetThumbnailAsync(ThumbnailMode.VideosView,190);
using(IRandomAccessStreamstream=thumbnail.CloneStream())
{
BitmapImagebitmapImage=newBitmapImage();
bitmapImage.SetSource(stream);
LibraryItemfileItem=newLibraryItem
{
Item_Thumbnail=bitmapImage,
Item_Source=file,
Item_Name=file.Name,
Item_Image=newBitmapImage(newUri("ms-appx:///Images/MainPage/videoFile.png")),
};
resourceList.Add(fileItem);
}
}
}
}
}
ItemSource_GridView.ItemsSource=resourceList;
}
catch(InvalidOperationExceptione)
{
UC.UserControl_TipMessageuc_tm=newUC.UserControl_TipMessage(e.Message);
uc_tm.Show();
}
以上是实现的效果.
之后我会和大家介绍一下CustomControl,自定义控件,这是一个能让你的应用程序非常个性化的控件,敬请期待!
相关文章推荐
- 关于做Android+J2ee系统集成开发的一点心得
- 关于Jquery在项目开发中的一点心得,还是基础最重要啊。
- 关于做Android+J2ee系统集成开发的一点心得
- [原]关于支付宝API开发的一点心得
- 关于做Android+J2ee系统集成开发的一点心得
- 开发ISAPI关于路径的一点心得
- Windows 8 Metro App开发[3]应用程序栏(AppBar)的使用
- 关于Pos下开发的一点心得
- 关于symbian 开发的一点心得:
- 关于三层结构的一点使用心得与开发建议
- 关于做android系统集成开发的一点心得
- 关于三层结构的一点使用心得与开发建议
- 关于做Android+JavaEE系统集成开发的一点心得
- 关于做Andr“.NET研究”oid+J2ee系统集成开发的一点心得
- 关于做Android+J2ee系统集成开发的一点心得
- Windows 8实用窍门系列:1.使用Xaml+C#开发第一个Metro Style应用程序 推荐
- 关于接口开发的一点心得
- 开发手机Widget关于页面css渲染的一点心得
- [转]关于支付宝API开发的一点心得
- 关于做Android+J2ee系统集成开发的一点心得