Windows phone 7.1 Windows Phone 7的组列表框?
我正在寻找一种方法来对项目进行分组,类似于下面的应用程序对项目进行分组的方式。是否可以使用视图模型创建组列表框?我计划拥有多个客户群,例如: “AAA”(集团) --“XDN”(联系人) “国家编目局”(集团) --“XDN”(联系人) 等等。。。我不想用字母来分隔,而是用组名来分隔。这可能吗 谢谢Windows phone 7.1 Windows Phone 7的组列表框?,windows-phone-7.1,windows-phone-7,Windows Phone 7.1,Windows Phone 7,我正在寻找一种方法来对项目进行分组,类似于下面的应用程序对项目进行分组的方式。是否可以使用视图模型创建组列表框?我计划拥有多个客户群,例如: “AAA”(集团) --“XDN”(联系人) “国家编目局”(集团) --“XDN”(联系人) 等等。。。我不想用字母来分隔,而是用组名来分隔。这可能吗 谢谢 没有任何东西可以阻止您创建符合该确切目的的定制有序集合。下面是我通常用于它的集合类型,当它与中的LongListSelector集成时 显然,您必须修改GroupHeaderTemplate,但这
没有任何东西可以阻止您创建符合该确切目的的定制有序集合。下面是我通常用于它的集合类型,当它与中的
LongListSelector
集成时
显然,您必须修改GroupHeaderTemplate
,但这非常简单
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
namespace LongListSample
{
public class LongListCollection<T, TKey> : ObservableCollection<LongListItem<T, TKey>>
where T : IComparable<T>
{
public LongListCollection()
{
}
public LongListCollection(IEnumerable<T> items, Func<T, TKey> keySelector)
{
if (items == null)
throw new ArgumentException("items");
var groups = new Dictionary<TKey, LongListItem<T, TKey>>();
foreach (var item in items.OrderBy(x => x))
{
var key = keySelector(item);
if (groups.ContainsKey(key) == false)
groups.Add(key, new LongListItem<T, TKey>(key));
groups[key].Add(item);
}
foreach (var value in groups.Values)
this.Add(value);
}
}
public class LongListItem<T, TKey> : ObservableCollection<T>
{
public LongListItem()
{
}
public LongListItem(TKey key)
{
this.Key = key;
}
public TKey Key
{
get;
set;
}
public bool HasItems
{
get
{
return Count > 0;
}
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Collections.ObjectModel;
使用System.Linq;
名称空间LongListSample
{
公共类LongListCollection:ObservableCollection
其中T:i可比较
{
公共长列表集合()
{
}
公共LongListCollection(IEnumerable项,Func键选择器)
{
if(items==null)
抛出新的ArgumentException(“项目”);
var groups=newdictionary();
foreach(items.OrderBy中的var项(x=>x))
{
var键=键选择器(项);
if(groups.ContainsKey(key)==false)
添加(键,新的LongListItem(键));
组[键]。添加(项);
}
foreach(组中的var值。值)
增加(价值);
}
}
公共类LongListItem:ObservableCollection
{
公共长列表项()
{
}
公共长列表项(TKey)
{
这个。键=键;
}
公钥
{
得到;
设置
}
公共物品
{
得到
{
返回计数>0;
}
}
}
}
使用示例:
嘿,酷,谢谢,这正是我想要的。非常感谢你!这个github链接目前是404的:/您介意给出一个如何使用该类的示例吗?谢谢克劳斯。您能给出一个Xaml数据绑定的例子吗?