WPF — повторяющиеся элементы из списка

#c# #.net #wpf

#c# #.net #wpf

Вопрос:

Я пытаюсь создать приложение WPF. Приложение должно выглядеть следующим образом.

Заголовок — верхняя левая кнопка «Новая запись» — справа вверху после этого есть таблица или что-то вроде этого. по три столбца на запись. В первом столбце имя, во втором текст и в третьем столбце кнопка.

Название, текст и кнопка должны отображаться и повторяться для каждого элемента в моем общем списке.

Как я могу это сделать? Есть ли элемент управления повторителем, как в WebForms? Могу ли я использовать ListView? Если да, то как я могу это настроить?

Буду признателен за любую помощь.

Спасибо!

Комментарии:

1. не могли бы вы переформатировать свой вопрос? Трудно понять, о чем вы хотите спросить. Если бы вы могли разработать функциональность, которую вы намереваетесь достичь, это упростило бы объяснение решения. WPF предоставляет шаблонное программирование, это может вам помочь.

2. У меня есть список серверов. Я хотел бы создать пользовательский интерфейс, который показывает список. Сервер объектов содержит имя и текст.

3. Графический интерфейс должен выглядеть следующим образом i.imgur.com/ghXoC.jpg

Ответ №1:

Что вам следует сделать, это создать DataGrid в xaml, привязать столбцы к вашим полям, а затем установить itemssource для этой таблицы данных:

 <DataGrid 
    x:Name="ItemsDataGrid"
    AutoGenerateColumns="False"
    HeadersVisibility="Column"
    ItemsSource="{Binding Path=YourDataCollection, Mode=OneWay}"
    SelectionChanged="IfYouWantToDoSomethingHereHandler"
    >
    <DataGrid.Columns>
        <DataGridTextColumn 
            Header="Name"
            Binding="{Binding Path=NameFromYourDataObject, Mode=TwoWay}" 
            Width="Auto"
            />
        <DataGridTextColumn 
            Header="DescriptionText"
            Binding="{Binding Path=DescriptionFromYourDataObject, Mode=TwoWay}" 
            Width="Auto"
            />
        <DataGridTemplateColumn 
            Header="ButtonColumn"
            CellTemplate="{StaticResource ButtonTemplate}"
            Width="Auto"
             />
    </DataGrid.Columns>
</DataGrid>
  

Где ButtonTemplate — это DataTemplate:

 <DataTemplate
    x:Key="ButtonTemplate"
    >
        <Button
            -- bind a command here of what the pressing of the button should look like
            />
</DataTemplate>
  

Все, что вам нужно сделать с этого момента, это создать DataObject, создать список или ObservableCollection («YourDataCollection»), заполнить его этими данными, а затем задать ItemsSource для ItemsDataGrid.

Так и должно быть .. ПРИВЕТ, Дэниел

Комментарии:

1. а также добавить шаблон заголовка для второго столбца, чтобы иметь кнопку «Новая запись» с командой для добавления новой записи в коллекцию, связанную с вышеуказанной сеткой данных.