Как открыть LongListSelector с группами, свернутыми в WP7?
У меня есть LongListSelector, который отображает множество элементов. Когда longListSelector открывается, я вижу, что группы расширены, т.е. элементы отображаются внутри групп. Я хочу, чтобы селектор longList отображал свернутую панель, показывая только имена групп при запуске. Как индекс. Когда вы нажимаете на группу, ее элементы раскрываются. Как это может быть сделано?
1 ответ
Просто нужно было реализовать это самому - сделал это следующим образом:
В определении шаблона элемента (не заголовка!) В XAML свяжите Visibility
свойство содержащего элемента (в моем случае, Grid
):
<DataTemplate x:Key="itemTemplate">
<Grid Visibility="{Binding FolderVisibility}">
...
Извлечь группу товаров из ObservableCollection
и создайте подходящее свойство для обработки статуса раскрытия / свертывания:
public class MyGroup : ObservableCollection<MyItem>
{
...
private bool m_expanded = true;
public bool Expanded
{
get { return m_expanded; }
set
{
m_expanded = value;
OnPropertyChanged( new PropertyChangedEventArgs( "Expanded" ));
foreach( var i in this )
{
i.OnFolderCollapsedExpanded();
}
}
}
...
Наконец, вам нужно FolderVisibility
свойство каждого элемента списка:
public class MyItem : INotifyPropertyChanged
{
...
public event PropertyChangedEventHandler PropertyChanged;
...
public Visibility FolderVisibility
{
get { return MyFolder.Expanded ? Visibility.Visible : Visibility.Collapsed; }
}
public void OnFolderCollapsedExpanded()
{
var h = PropertyChanged;
if( h != null ) h( this, new PropertyChangedEventArgs( "FolderVisibility" ));
}
...
Затем просто переключите папку Expanded
недвижимость в подходящем месте (например, Click
обработчик для шаблона заголовка папки).