Мне нужно рассчитать лиги, доступные внутри ObservableCollection
. Проблема в том, что имя лиги дублируется, поэтому мне нужно удалить дубликаты. На самом деле то, что я это:Сгруппируйте группы в CollectionViewSource
private static ObservableCollection<Models.Event> _matches = new ObservableCollection<Models.Event>();
public ObservableCollection<Models.Event> Matches
{
get { return _matches; }
}
По существу Я набор событий, теперь каждое событие имеет лигу связанную. Моя идея создать еще одно свойство под названием LeaguesCount
:
public int LeaguesCount
{
//remove duplicate record from _matches here
}
и вернуться лиги доступны, но есть еще одна проблема. Поскольку каждая лига отличается, поэтому я мог бы:
Premier League x3
Serie A x5
Super League x4
...
Мне нужно, чтобы счетчик был отделен. Замечено, что эта лига являются адъюнкт во имя нации, так что я мог бы в _matches
два события с этой структурой:
Event (1)
match_name = 'Foo';
match_nation = 'England';
match_league = 'Premier League';
Event (2)
match_name = 'Test';
match_nation = 'England';
match_league = 'Premier League';
Событие (3)
match_name = 'Another event';
match_nation = 'England';
match_league = 'Championship';
так, как вы можете видеть в England
наций доступны три события с Premier League
лигами имени и Championship
названием лиги, мне нужно, чтобы получить от народа England
подсчета всех лиг избежать конечно дубликата.
Структура мероприятия в основном это:
public class Event : ViewModel
{
private string _matchNation,
_matchLeague,
_matchName;
}
Каждое поле имеет свойство, связанное. Свойства, связанные с этим вопросом являются:
public string MatchNation
{
get { return _matchNation; }
set
{
_matchNation = value;
OnPropertyChanged();
}
}
public string MatchLeague
{
get { return _matchLeague; }
set
{
_matchLeague = value;
OnPropertyChanged();
}
}
public string MatchName
{
get { return _matchName; }
set
{
_matchName = value;
OnPropertyChanged();
}
}
Результат хотел:
England -> League count (2) [Championship, Premier League]
Основной проблемой является другое название нации, потому что я связываю источник в XAML как это:
<CollectionViewSource Source="{Binding Matches}" x:Key="GroupedItems">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="MatchNation" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
и в GroupHeaderTemplate
:
<TextBlock Text="{Binding Name}" FontWeight="Bold" Foreground="White" FontSize="22" VerticalAlignment="Bottom" />
<TextBlock Text="{Binding ItemCount}" FontSize="22" Foreground="Orange" FontWeight="Bold" FontStyle="Italic" Margin="10,0,0,0" VerticalAlignment="Bottom" />
, но ItemCount
фактически возвращает все предметы (событие), а не лиги без дублирования, это ошибка.
Я думаю, что вы сделали опечатку или у вас есть логическая проблема. Вы группируете «MatchNation» -> Существует только ** Англия **, поэтому результат (3) правильный. Вы должны сгруппировать вместо этого 'MatchLeague' – lokusking
@lokusking - это не логическая проблема, мне нужно сгруппировать событие для нации, поэтому в моем групповом описании у меня есть эта организация:« Народы-> Лиги-> События ». Теперь мне нужно получить счет лиг (без дубликатов) для всех стран. Я не знаю, что неясно, дайте мне знать, я попытаюсь объяснить лучше, спасибо. – AgainMe