银光4号列表框(ListBoxItems)隐藏问题[英] Silverlight 4 ListBox (ListBoxItems) hide Problem

问题描述

嗨,我有使用 MVVM 模式开发的 Silverlight 4 应用程序.我的控件上还有一个 PagedCollectionView 绑定.项目是应在 4 个类别中过滤的任务(填充 4 个不同的列表框),无能为力的是过滤器是静态的.我还为用户提供了另一个动态过滤器,它提供按日期(日、周、月..)进行过滤.因此,对于类别过滤器,我使用了一个将 ListboxItems 的可见性设置为折叠的转换器.对于动态过滤器,我使用 PagedCollectionView 过滤器的可能性.工作也符合预期,但隐藏 Listboxitems 有空白空间,当用户将鼠标悬停在空白空间上时,他可以标记该项目.所以项目并没有真正隐藏.我对项目使用 WrapPanel.所以我知道控制直接绑定到集合,但是当我将可见性设置为折叠时,我希望这些项目应该隐藏.转换器:public object Convert(object value, Type targetType, object parameter,System.Globalization.CultureInfo 文化){如果(值!= null){string prio = 参数作为字符串;var v = value.ToString();if (prio != v) return Visibility.Collapsed;}返回可见性.可见性;}Xaml:<样式 TargetType="ListBox" ><Setter 属性="ItemsPanel"><Setter.Value><ItemsPanelTemplate><controlsToolkit:WrapPanel /></ItemsPanelTemplate></Setter.Value></Setter><Setter        属性="ScrollViewer.Horizo​​ntalScrollBarVisibility"        ="已禁用"        /><ListBox 名称="ListBoxA" ItemsSource="{绑定任务}" 边距="0,15,0,0" 背景span>="{StaticResource Background-Brush}"><ListBox.ItemTemplate><DataTemplate><网格 宽度="80" 边距="1" 可见性="{Binding Path=Prio, ConverterParameter='A' ,Converter={StaticResource TaskFilter}}"><Grid.ColumnDefinitions><ColumnDefinition 宽度="2" /><ColumnDefinition /></Grid.ColumnDefinitions><Grid.RowDefinitions><行定义 高度="自动" /></Grid.RowDefinitions><矩形  RadiusX="0" RadiusY="0" Grid.RowSpan="5" Grid.ColumnSpan="2" UseLayoutRounding="True"><Rectangle.Fill><LinearGradientBrush 起点="0,0" EndPoint="0,0"><!--<GradientStop Color="White" Offset="0"/>--><GradientStop 颜色="#FFEEFB08" 偏移="4" /></LinearGradientBrush></Rectangle.Fill></Rectangle><TextBlock 名称="NameField" 文本="{绑定路径=Taskname}" 边距="4,2,2,2" 网格.Row="0" Grid.Column="1" FontWeight="Bold" FontSize="12" IsHitTestVisible="False" /></Grid></DataTemplate></ListBox.ItemTemplate></ListBox>我也尝试定义 ListBoxItems 但它不起作用.如果有任何帮助,我将不胜感激.谢谢.Martin

推荐答案

所以,我的问题没有解决方案.控件想要显示绑定集合中的所有项目.

在我的情况下,丑陋的工作是为每个列表使用 4 个集合.

不好的想法是,每次原始集合更改时,集合都会刷新.

本文地址:https://www.itbaoku.cn/post/1394983.html