在运行时修改列表视图项模板
本文关键字:视图 列表 运行时 修改 | 更新日期: 2023-09-27 18:33:14
我有一个列表视图:
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<Grid Height="90" HorizontalAlignment="Stretch" Background="Gray">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="1.2*"/>
<ColumnDefinition x:Name="changeThis" Width="140"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="45"/>
</Grid.ColumnDefinitions>
...
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
当屏幕方向更改为纵向时,我希望第 3 列(140 像素宽)消失,以便其他列保持正确可见。我使用 VisualStateManager 来管理方向更改,但是如果我尝试将"changeThis"列定义更改为 0,则会出现异常。奇怪的是,我无法从后面的代码中访问"changeThis"列定义。这是一个Windows应用商店应用程序。
遗憾的是,x:Name 是项模板的本地,无法从外部访问。
可能的解决方案是:1:将宽度绑定到属性。 {Binding DataContext.MyColumnWidth, ElementName=LayoutRoot}
2:使用具有不同方向模板的 ItemTemplateSelector。