繁体   English   中英

Windows Phone 8中的ListBox值显示

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM