积极答复者
listview的listviewitem 的显示

问题
-
<ScrollViewer Grid.Column="0" Grid.ColumnSpan="2">
<ListView x:Name="fileNameList" SelectionChanged="ListView_SelectionChanged" ItemsSource="{ Binding }" >
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding errorFileInfoElment.filePath,Converter={StaticResource FileListValueConverter} }"
HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding matches, Converter={StaticResource VisibilityValueConverter}}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ScrollViewer>一个列表根据viewmodule的 绑定到listview ,然后 DataTemplate的TextBlock 显示filepath
如图
列表的部分项需要隐藏 ,所以我把Visibility属性做了绑定但是我利用Collapsed隐藏列表项
却这样显示
虽然折叠了,但是依然有空间,而且也能触发SelectionChanged事件.请问如何才可以完全隐藏它,同时不触发事件。
答案
-
Hi ben302010,
我看到你的代码里只是隐藏了Textblock,而ListViewItem没有被隐藏,因此才会出现你这样的问题,你需要将ListViewItem的Visibility属性进行绑定,以将它与TextBlock一同隐藏,我写了段代码供你参考:
<ListView x:Name="fileNameList" SelectionChanged="fileNameList_SelectionChanged"> <ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="Visibility" Value="{Binding visibility, Converter={StaticResource ConvertVisibility}}"/> </Style> </ListView.ItemContainerStyle> <ListView.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding filename}" Visibility="{Binding visibility, Converter={StaticResource ConvertVisibility}}" /> </DataTemplate> </ListView.ItemTemplate> </ListView>
Best Regards,
Eoro
- 已标记为答案 ben302010 2015年4月14日 7:51
全部回复
-
建议根据你的隐藏条件对viewmodule进行查询, 然后将查询绑定到ListView.
https://msdn.microsoft.com/zh-cn/library/bb910060%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
-
Hi ben302010,
我看到你的代码里只是隐藏了Textblock,而ListViewItem没有被隐藏,因此才会出现你这样的问题,你需要将ListViewItem的Visibility属性进行绑定,以将它与TextBlock一同隐藏,我写了段代码供你参考:
<ListView x:Name="fileNameList" SelectionChanged="fileNameList_SelectionChanged"> <ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="Visibility" Value="{Binding visibility, Converter={StaticResource ConvertVisibility}}"/> </Style> </ListView.ItemContainerStyle> <ListView.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding filename}" Visibility="{Binding visibility, Converter={StaticResource ConvertVisibility}}" /> </DataTemplate> </ListView.ItemTemplate> </ListView>
Best Regards,
Eoro
- 已标记为答案 ben302010 2015年4月14日 7:51