我有一个ListView:
<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列(140px宽)列消失,因此其他列保持正常可见。我使用VisualStateManager来管理方向更改,但如果我尝试更改&#34; changeThis&#34; ColumnDefinition为0.奇怪的是我无法访问&#34; changeThis&#34;从后面的代码中的ColumnDefinition。它是一个Windows应用商店应用程序。
答案 0 :(得分:0)
可悲的是,x:Name是项目模板的本地名称,无法从外部访问。
可能的解决方案是: 1:将宽度绑定到属性。 {Binding DataContext.MyColumnWidth,ElementName = LayoutRoot}
2:使用ItemTemplateSelector和不同的方向模板。