2013-12-17 2 views
1

필자는 꼭 필요한대로 작동하는 LongListSelector를 가지고 있습니다. 이제 그룹화 만 활성화하면됩니다. 그것도 PeopleHub과 JumpList에 있습니다. 어떻게해야합니까? MSDN에서 예제를 확인했지만 복잡한 데다가 제대로 작동하지 않았을 수도 있습니다.LongListSelector 그룹화, 점프 목록

xmll 또는 C# 코드로 LongListSelector를 채우지 않지만 xml 구문 분석을 사용합니다.

먼저 나는 XML 구문 분석 :

XDocument xml = XDocument.Load("xmlfile.xml"); 

     var data = from query in xml.Descendants("country") 
        select new Country 
        { 
         Name = (string)query.Element("name"),}; 

을하고 itemsSource 설정 :

public class Country 
{ 
    string name; 

    public string Name 
    { 
     get { return name; } 
     set { name = value; } 
    }} 

가 지금은 그룹이 국가 싶습니다 : 나는 국가 클래스가

countriesList.ItemsSource = data.ToList(); 

     // Set the data context of the listbox control to the sample data 
     DataContext = App.ViewModel; 
    } 

을 이름으로. 어떻게해야합니까?

도움 주셔서 감사합니다.

답변

2

sample에서 그들은 AlphaKeyGroup<T>이라는 팬시 - 바지 도우미 클래스를 만듭니다. 나는 LongListSelector가로 "키"라는 속성을 찾습니다 같은데요

countriesList.ItemsSource = data 
    .GroupBy(country => country.Name) 
    .Select(grp => new CountryGrouping(grp.ToArray()) { Key = grp.Key }) 
    .ToList(); 

:

public class CountryGrouping : List<Country> 
{ 
    public CountryGrouping(IEnumerable<Country> items) : base(items) { } 

    public string Key { get; set; } 
} 

바인드 ItemsSource이에 : 정말하지만, 당신은 각 그룹을 포함하는 클래스가 필요 그룹 머리글 (마술 끈!).

또한 컨트롤에 IsGroupingEnabled="true"을 설정하는 것을 잊지 마십시오.

+0

이 클래스를 MainPage에 넣을 수 있습니까? 이름으로 국가를 그룹화하는 경우 사용되는 키는 무엇입니까? – Skynet

+0

두 번째 부분에서 오류가 발생합니다. 'app.MainPage.CountryGrouping'에는 1 개의 인수를 사용하는 생성자가 포함되어 있지 않습니다. – Skynet

+0

@Skynet 실수로 생성자를 'CountryGrouping'에 추가해야했습니다. 'Key'는'LongListSelector'에 의해 필요합니다 (제 생각에). – McGarnagle

1

노키아 개발자 사이트에서 LongListSelector에 대한이 위키를 살펴 보자 당신이 사용할 수있는 좋은 예를 들어 있기 때문에 http://developer.nokia.com/Community/Wiki/LongListSelector_with_bindable_SelectedItem_and_better_scrolling

을,하지만 당신은 LongListSelector으로 더 가면 당신이 필요로 할 수있는 다른 것들에 대해서도 회담 (선택한 항목 및 다른 것들을 가져 오는 것과 같습니다)

+0

나는 이미 내가 필요로하는 모든 것을 프로그래밍했고, selectedItem 역시 어쨌든 보일 것이다. – Skynet

+0

나를 위해 사용하지 마십시오. – Skynet

+0

좋아, 그룹을 보지 못하는 이유를 직접 말하기 어렵다. ( – Depechie