[英]ListBox Value Display in Windows Phone 8
我试图将可观察集合与ListBox绑定并在UI上显示数据(Windows Phone 8.0)。 我的列表框有四个属性的文本块,
<ListBox x:Name="allListBox" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Style="{StaticResource txtBlockStyleDate}" Text="{Binding Date}"></TextBlock>
<TextBlock Style="{StaticResource txtBlockStyle1}" Text="{Binding TypeOfApproval}"></TextBlock>
<TextBlock Style="{StaticResource txtBlockStyle2}"
Text="{Binding TypeOfRequest}" />
<TextBlock Style="{StaticResource txtBlockStyle3}" Text="{Binding Status}"/>
<TextBlock Height="30"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
可观察集合中的所有对象都显示正常,但是当任何属性没有任何值时,其文本块仍然存在,并且其空间是可见的,这给UI留下了不好的印象。 你可以建议我该怎么做,当任何属性为空时,与之相关的文本块不应该占用任何高度,下一个文本块应该占用空间。 我附加一个图像,看到测试后的空白是可见的,因为它的属性为null,我想删除这个空间。
您需要使用可见性转换器! 如果您的绑定数据是文本,StringToVisibilityConverter就可以了。
有关如何执行此操作的示例,请访问: http : //www.smallandmighty.net/blog/using-value-converters-to-change-the-visibility-of-a-control
你将需要一个IValueConverter
,基本上你的想法就是这样做:
... 插入 ...
<ListBox.Resources>
<VisibilityConverter x:Key="VisibilityConverter"/>
</ListBox.Resources>
......改变......
<TextBlock Style="{StaticResource txtBlockStyleDate}" Visibility="{Binding Date, Converter={StaticResource VisibilityConverter}}" Text="{Binding Date}"/>
在IValueConverter
实现中,您只需查看属性是null
还是空。 如果是,你只需返回Visibility.Collapsed
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.