WPF связывание данных - PullRequest
       7

WPF связывание данных

0 голосов
/ 03 марта 2010

У меня есть следующий домен:

public class FileInformation
{
 public String FileName;
 public String CreatedBy;  // name of user who created the file
 public String CreatedComments;
 public String CreatedDate;
 public String EditedBy;   // name of user who last edited the file
 public String EditedComments;
 public String EditedDate;
}

public class Folder
{
public List<FileInformation> Files {get;set}
}

Я хочу иметь сетку данных WPF и привязать к ней список файлов в классе «Папка» ..... Это довольно просто, если я хочу, чтобы данные отображались стандартным способом ..... но я хочу, чтобы он отображался следующим образом:

alt text

Любые идеи о том, что мне нужно сделать, чтобы данные отображались таким образом?

1 Ответ

0 голосов
/ 03 марта 2010

Самый простой способ сделать это:

  • Извлечение CollectionView из привязки:

CollectionView cv = (CollectionView)(CollectionView)CollectionViewSource.GetDefaultView(_grid.ItemsSource);

  • Создание группировки на основе FileName:

cv.GroupDescriptions.Add(new PropertyGroupDescription("FileName"));

  • Создайте GroupStyle в Grid, который отображает Gorup так, как вы хотите.

   <GroupStyle>
      <GroupStyle.ContainerStyle>
         <Style TargetType="{x:Type GroupItem}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type GroupItem}">
                      <Expander IsExpanded="True" Header={Binding Name}>
                          <ItemsPresenter/>
                      </Expander>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
         </Style>
      </GroupStyle.ContainerStyle>
   </GroupStyle>
</DataGrid.GroupStyle>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...