如何在WPF中的分组列表中显示多个集?
如何在WPF中的分组列表中显示多个集?
我想创建一个分成若干组,使得从任何一组物品都可以隐藏列表。
现在,每个组的项目在一个单独的收集和所有集合(共5个)的单个对象举行举行。但是如果它能使代码更简单,我可以修改它们的存储方式。
回答:
试试这个,列表框的易变化的ItemTemplate与列表框扩展器。 例如: ScreenShot XAML:
<Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<local:MainWindowVM/>
</Window.DataContext>
<Grid>
<ListView ItemsSource="{Binding ItemsList}">
<ListView.ItemTemplate>
<DataTemplate>
<Expander Header="{Binding Name}" >
<ListView ItemsSource="{Binding Items}"/>
</Expander>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
视图模型:
public class MainWindowVM {
public MainWindowVM()
{
ItemsList = new List<Group>();
var items = new List<Item>();
items.Add(new Item("Item1"));
items.Add(new Item("Item2"));
items.Add(new Item("Item3"));
//items.Add("Item4");
//items.Add("Item5");
ItemsList.Add(new Group()
{
Name = "List1",
Items = items
});
items.Add(new Item("Item4"));
ItemsList.Add(new Group()
{
Name = "List2",
Items = items
});
items.Add(new Item("Item5"));
ItemsList.Add(new Group()
{
Name = "List3",
Items = items
});
}
public List<Group> ItemsList { get; set; }
}
public class Group
{
public string Name { get; set; }
public List<Item> Items { get; set; }
public override string ToString()
{
return Name;
}
}
public class Item
{
public Item(string name)
{
Name = name;
}
public string Name { get; set; }
public override string ToString()
{
return Name;
}
}
回答:
只要你与WPF框架,你可以定义ListBox.GroupStyle以及定期的风格内部物品。然后结合你的列表框CollectionViewSource类似的东西:
ICollectionView view = CollectionViewSource.GetDefaultView(*your-collection-here*); view.GroupDescriptions.Add(new PropertyGroupDescription(*your-grouping-field-here*));
view.SortDescriptions.Add(new SortDescription((*your-grouping-field-here*, ListSortDirection.Ascending));
your-listbox-here.ItemsSource = view;
所有学分去这里:http://www.c-sharpcorner.com/uploadfile/dpatra/grouping-and-sorting-in-listbox-in-wpf
要展开/折叠组,您可以添加,保持当前状态的布尔属性(折叠或展开),并采取这为您的样式(让的说,使之可见为展开的项目只,变“展开/折叠” V形图标等)
以上是 如何在WPF中的分组列表中显示多个集? 的全部内容, 来源链接: utcz.com/qa/265907.html