学习总结

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

最近在学习win10开发UWP应用的时候遇到了一些问提,记录以作备用。

1. listview可以通过ItemTemplateSelector来给listview显示不同的DataTemplate

一个继承DataTemplateSelector的类,通过重写SelectTemplateCore的方法来指定不同的DataTemplate

2.在DataTemplate里面使用x:bind的时候,必须在DataTemplate那里指定x:DataType,不然编译会报错

3.listview的FooterTemplate和DataTemplate的内容所属的集合不一致,

在赋值的时候,是这样赋值的

//初始化数据,TemplateType=2的那一项是占位项,用来显示画线的那一项//SpView的那一项是listview的footitem的那一项publicSpliteViewViewModel()

{

spHelper=newList<SpliteViewHelper>()

{newSpliteViewHelper() {SpliteviewName="标题1",groupType=1,SpIcon=newBitmapImage(newUri("ms-appx:///Assets/LockScreenLogo.scale-200.png")) ,TemplateType=1},newSpliteViewHelper() {SpliteviewName="标题2",groupType=1,SpIcon=newBitmapImage(newUri("ms-appx:///Assets/LockScreenLogo.scale-200.png")),TemplateType=1},newSpliteViewHelper() {SpliteviewName="标题3",groupType=1,SpIcon=newBitmapImage(newUri("ms-appx:///Assets/LockScreenLogo.scale-200.png")),TemplateType=1},newSpliteViewHelper() {SpliteviewName="标题1",groupType=1,SpIcon=newBitmapImage(newUri("ms-appx:///Assets/LockScreenLogo.scale-200.png")),TemplateType=2},newSpliteViewHelper() {SpliteviewName="标题4",groupType=1,SpIcon=newBitmapImage(newUri("ms-appx:///Assets/LockScreenLogo.scale-200.png")),TemplateType=1},newSpliteViewHelper() {SpliteviewName="标题5",groupType=1,SpIcon=newBitmapImage(newUri("ms-appx:///Assets/LockScreenLogo.scale-200.png")),TemplateType=1},

};

SpView=newSpliteViewHelper() { SpliteviewName ="底部标题", groupType =1, SpIcon =newBitmapImage(newUri("ms-appx:///Assets/LockScreenLogo.scale-200.png")), TemplateType =1};

}

View Code

在前台绑定也是不同的

<ListView x:Name="SplitViewListView"SelectedItem="{Binding spviewmodel.selectitem}"ItemsSource="{Binding spviewmodel.spHelper}"Background="#372127">

<Interactivity:Interaction.Behaviors>

<core:EventTriggerBehavior EventName="SelectionChanged">

<core:InvokeCommandAction Command="{Binding spviewmodel.SelectedCommand}"CommandParameter="{Binding ElementName=SplitViewListView,Path=SelectedItem}"/>

</core:EventTriggerBehavior>

</Interactivity:Interaction.Behaviors>

<ListView.ItemTemplateSelector>

<com:TemplateSelector LineTemplate="{StaticResource LineTemplate}"NomalTemplate="{StaticResource NomalTemplate}"/>

</ListView.ItemTemplateSelector>

<ListView.FooterTemplate>

<DataTemplate >

<StackPanel Orientation="Horizontal"Height="40"x:Name="footItem">

<Interactivity:Interaction.Behaviors>

<core:EventTriggerBehavior EventName="Tapped">

<core:InvokeCommandAction Command="{Binding spviewmodel.SelectedCommand}"CommandParameter="{Binding ElementName=footItem}"/>

</core:EventTriggerBehavior>

</Interactivity:Interaction.Behaviors>

<Image Source="{Binding spviewmodel.SpView.SpIcon}"Width="40"Height="40"VerticalAlignment="Center"/>

<TextBlock Text="{Binding spviewmodel.SpView.SpliteviewName}"Foreground="White"></TextBlock>

</StackPanel>

</DataTemplate>

</ListView.FooterTemplate>

</ListView>

View Code

但是为什么绑定Command的时候是找得到同一个Command呢?

还有一个问题listview的FooterTemplate怎么去选中呢

4.UserControl通过 x:FieldModifier来控制访问权限

5.splitview的DisplayMode决定了它的不同显示

最近遇到了很多问题,写的很差,新手勿喷

demo下载地址

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航