如何在后台切换ListView的ItemsPanelTemplate?通过后台的代码将StackPanel与Warpanel相互切换

weixin_38062043 2016-12-28 03:17:30
想在后台通过事件代码中切换ListView的显示风格ItemsPanelTemplate,当事件触发时,StackPanel与Warpanel相互切换,如何做到?
...全文
34 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38068389 2016-12-28
  • 打赏
  • 举报
回复

Hi 轮回的齿轮,
你可以使用SetValue来重新设置Style的属性值,这样就可以在后台代码中进行动态切换。
ListView.SetValue(ListView.StyleProperty, this.Resources["Style1"]); ListView.SetValue(ListView.StyleProperty, this.Resources["Style2"]);
这些Style是你在窗体资源中为Listview进行定义的,比如下面代码:
<Style x:Key="Style1" x:Name="a" TargetType="{x:Type ListView}" > <Setter Property="ItemsPanel"> <Setter.Value> <ItemsPanelTemplate> <StackPanel Orientation="Vertical"> </StackPanel> </ItemsPanelTemplate> </Setter.Value> </Setter> <Setter Property="ItemTemplate"> <Setter.Value> <DataTemplate> <StackPanel Margin="10 20 0 0" > <Label MaxWidth="112" Margin="0,10,0,0" > <TextBlock TextWrapping="Wrap" TextAlignment="Center" FontSize="12" FontWeight="Bold" Text="{Binding Name}" Height="27" Width="105"></TextBlock> </Label> </StackPanel> </DataTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="Style2" x:Name="a2" TargetType="{x:Type ListView}" > </Style>


476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧