如果我单击列表中间的项目,我希望除了1个元素之外的所有元素都会折叠.实际输出是剩下许多项目.为什么?这是整个计划.
using System; using System.Collections.Generic; using System.Windows; using System.Windows.Controls; namespace WpfApplication2 { public partial class MainWindow : Window { public class obj { } public MainWindow() { InitializeComponent(); List<obj> objList = new List<obj>(); for (int i = 0; i < 30; i++) objList.Add(new obj()); lb.ItemsSource = objList; } private void lb_SelectionChanged(object sender,SelectionChangedEventArgs e) { ListBox lb = sender as ListBox; for (int i = 0; i < lb.Items.Count; i++) { ListBoxItem tmp = (ListBoxItem)(lb.ItemContainerGenerator.ContainerFromItem(lb.Items[i])); if (tmp != null) { if (tmp.IsSelected) tmp.Visibility = System.Windows.Visibility.Visible; else tmp.Visibility = System.Windows.Visibility.Collapsed; } } } } } <Window x:Class="WpfApplication2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525" > <Grid> <ListBox Name="lb" SelectionChanged="lb_SelectionChanged" IsSynchronizedWithCurrentItem="True" > <ListBox.ItemTemplate > <DataTemplate> <StackPanel Orientation="Vertical"> <TextBlock Name="tb1" Text="whatever"/> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </Grid> </Window>
解决方法
原文地址:https://www.jb51.cc/csharp/244269.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。