Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > сложный ListBox


Автор: RastaDja 18.10.2011, 15:28
  Доброго времени суток!
  Есть идея, но сам не могу разобратся.
  Хочу создать ListBox, внутри которого будут Expander-ы, а внутри каждого Expander-а ListBox-ы. Ух-х-х.
  Это я пробовал сделать используя класс описаный ниже (псевдо код)
Код

class ListClass
{
   //...
   public String Title { get; set; }                   // это надпись на экспандере
   public list<String> mList { get; set; }        // это коллекция, которая должна отобразится внутри экспандера
   //...
}

  
  В коде XAML я пытаюсь использовать шаблоны (Привожу пример максимально упрощенных шаблонов). Первый шаблон описывает експандер, внутри которого есть ListBox
Код

<DataTemplate x:Key="ListTmpl">
   <Expander FontFamily="Calibri">
      <Expander.Header>
         <TextBlock Text="{Binding Title}"/>
      </Expander.Header>
      <ListBox ItemTemplate="{StaticResource OpenTmpl}">          
      </ListBox>
   </Expander>
</DataTemplate>


  Второй шаблон (OpenTmpl) должен описывать, как отобразить данные в списке експандера
Код

<DataTemplate x:Key="OpenTmpl">
   <Border Name="border" BorderThickness="1" Padding="5" Margin="0">
      <Grid>
         <TextBlock Text="{Binding}"/>
      </Grid>
   </Border>
</DataTemplate>


  Проблема в том, что я не знаю как правильно сделать биндинг. А может я вообще не правильно концепцию построил...
  Помогите пожалуйста решить данный трабл.
  Заранее благодарен

Автор: RastaDja 18.10.2011, 16:04
Разобрался. В первом шаблоне нужно внести такие изменения
Код

<DataTemplate x:Key="ListTmpl">
   <Expander FontFamily="Calibri">
      <Expander.Header>
         <TextBlock Text="{Binding Title}"/>
      </Expander.Header>
      <ListBox ItemTemplate="{StaticResource OpenTmpl}" ItemsSource="{Binding coll}">
      </ListBox>
   </Expander>
</DataTemplate>


Тема закрыта

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)