Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 20.06.2016
Сообщений: 29
1

Привязка коллекции к ListView

27.12.2016, 03:53. Показов 2738. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброй ночи! У меня практически нет опыта работы в WPF и поэтому никак не могу сообразить, как привязать мою коллекцию к списку ListView. Что нужно записать в xaml и xaml.cs для того, чтобы фамилии, имена и т.п., содержащиеся в коллекции выводились в соответствующих столбцах ListView? Помогите, пожалуйста, очень важно. Заранее благодарю!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using System;
using System.Collections;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace WpfApplication1
{
    class subscribes: Person
    {
        public string patronymic { get; set; }
        public int phone { get; set; }
        public string street { get; set; }
        public int home { get; set; }
        public int apartment { get; set; }
        public double pay { get; set; }
        public double costone { get; set; }
        public double time { get; set; }
        public double balance { get; set; }
 
        public static List<subscribes> read()
        {
            List<subscribes> collection = new List<subscribes>();
 
            using (StreamReader reader = File.OpenText("1.txt"))
            {
                while (!reader.EndOfStream)
                {
                    string str = reader.ReadLine();
 
                    string[] arguments = str.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
 
                    var item = new subscribes
                    {
                        surname = arguments[0],
                        name = arguments[1],
                        patronymic = arguments[2],
                        phone = int.Parse(arguments[3]),
                        street = arguments[4],
                        home = int.Parse(arguments[5]),
                        apartment = int.Parse(arguments[6]),
                        pay = double.Parse(arguments[7]),
                        costone = double.Parse(arguments[8]),
                        time = double.Parse(arguments[9]),
                        balance = double.Parse(arguments[10])
                    };
                    collection.Add(item);
                }
            }
            return collection;
          }
 
    }
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApplication1"
        xmlns:col="clr-namespace:System.Collections;assembly=mscorlib"
        Title="MainWindow" Height="408" Width="599">
    <Grid>
        <ListView Name="debtors">
            <ListView.View>
                <GridView>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=surname}">Фамилия</GridViewColumn>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=name}" Width="100">Имя</GridViewColumn>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=patronymic}">Отчество</GridViewColumn>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=phone}">№ телефона</GridViewColumn>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=street}">Улица</GridViewColumn>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=home}">Дом</GridViewColumn>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=apartment}">Квартира</GridViewColumn>
                </GridView>
            </ListView.View>  
        </ListView>
    </Grid>
</Window>
и нужны ли здесь эти свойства: DisplayMemberBinding="{Binding Path=surname?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2016, 03:53
Ответы с готовыми решениями:

Не запускается привязка коллекции
не запускается, не пойму в чем проблема

Привязка коллекции к TextBox
Всем привет, Никак не могу понять как привязать коллекцию к TextBox. В ListView я использовал...

Привязка коллекции объектов List к treeview
Добрый день. ХОтелось бы выяснить, как k treeview присоединить коллекцию List. &lt;TreeView...

Привязка коллекции структур(а не классов) к DataGrid
Вопрос: кто-нибудь пытался привязать, допустим, к ItemsSource'у DataGrid'а коллекцию...

2
0 / 0 / 3
Регистрация: 16.12.2016
Сообщений: 14
27.12.2016, 08:35 2
На вашем месте я бы создал отдельный класс со свойствами patronymic, phone..( Как вы и сделали) и потом из кода страницы
на которой находится этот ListView

конструктор окна:
C#
1
2
3
4
5
6
 
public Window1()
        {
            InitializeComponent();
            Loaded += Window1_Loaded;
        }
событие:
C#
1
2
3
4
5
6
7
 private void Window1_Loaded(object sender, RoutedEventArgs e)
        {
            ObservableCollection<subscribes> tasks = new ObservableCollection<Taask>();
           
           tasks.Add(ссылку на объект своего класса);               
            List.ItemsSource = tasks;
        }
при этом в xaml коде:
VB.NET
1
2
3
4
5
6
7
8
<ListView x:Name="List">
        <ListView.View>
            <GridView>
                <GridViewColumn DisplayMemberBinding="{Binding surname}">Фамилия</GridViewColumn>
                   <...>
        </GridView>
            </ListView.View>
    </ListView>
0
Эксперт .NET
1838 / 1346 / 427
Регистрация: 10.06.2011
Сообщений: 2,126
27.12.2016, 10:21 3
Я же ещё в предыдущей теме вам всё расписал, что нужно сделать. Напишу ещё раз. Только, пожалуйста, попробуйте применить предложенное мной решение
XML
1
<ListView Name="debtors" Loaded="Debtors_OnLoaded">
В MainWindow.xaml.cs:
C#
1
2
3
4
        private void Debtors_OnLoaded(object sender, RoutedEventArgs e)
        {
            debtors.ItemsSource = subscribes.read();
        }
Добавлено через 1 минуту
Что я разбежался. Скофенко Кирилл, уже подробно описал все пункты действий)
0
27.12.2016, 10:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2016, 10:21
Помогаю со студенческими работами здесь

Привязка состава колонок DataGrid к коллекции
Добрый день. Подскажите, каким образом можно указать DataGrid'у какой состав колонок он должен...

Привязка класса к коллекции и вывод данных в табличном виде
Помогите, пожалуйста!!! У меня есть класс, в котором хранятся все данные о клиентах (данные...

Коллекции и ListView
Добрый день. Есть класс: class Password { public string Title { get; set; } ...

Заполнение ListView из коллекции
Подскажите как осуществить привязку данных в ListView item source из ObservableCollection Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru