Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не получается привязаться к List<>, из ListView 
V
    Опции темы
ДобренькийПапаша
Дата 26.5.2011, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 2
Всего: 7



Нашёл у нас же аналогичный пример, но тут с классом http://forum.vingrad.ru/topic-317693.html

Код

 <ListView Name="BankNotesCaptured" Grid.Row="1" Margin="25,5,25,25" HorizontalAlignment="Center">
                <ListView.View>
                    <GridView>
                        <GridView.Columns>
                            <GridViewColumn Width="120" Header="Номинал (руб)" DisplayMemberBinding="{Binding Path=BankNotesNominals}"></GridViewColumn>
                            <GridViewColumn Width="120" Header="Количество"></GridViewColumn>
                            <GridViewColumn Width="120" Header="Цена"></GridViewColumn>
                        </GridView.Columns>
                    </GridView>
                </ListView.View>
            </ListView>


Код

public partial class Deposition : Window
    {
        private List<string> bankNotesNominals = new List<string>() {"10", "50", "100" };
        private List<int> coinsNominals = new List<int>() { 1, 2, 5, 10 };

        public List<string> BankNotesNominals { get { return bankNotesNominals; } }
        public List<int> CoinsNominals { get { return coinsNominals; } }

        public Deposition()
        {
            InitializeComponent();
            DataContext = this;
        }


Привязка не происходит.


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
-Mikle-
Дата 26.5.2011, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



А где привязка ItemsSource? И объясни еще, что такое BankNotesNominals и CoinsNominals. Они в одной строке ListView должны отображаться? Если да, то их надо объединить в каком-нить классе (допустим MyData), в Deposition хранить список List<MyData>. ListView.ItemsSource должна привязываться к свойству с этим списком, а DisplayMemberBinding должна привязываться к свойствам класса MyData.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
ДобренькийПапаша
Дата 26.5.2011, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 2
Всего: 7



Нет, другой дженерик в другом листвью отображается.
Мне надо тупо привязать значения из одного List<> к <ListView Name="BankNotesCaptured".


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
-Mikle-
Дата 26.5.2011, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



В любом случае надо прописать привязку в ItemsSource.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
ДобренькийПапаша
Дата 26.5.2011, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 2
Всего: 7



Так я и не пойму, что в ItemsSource указывать. Если укажу коллекцию, то заполняются все столбцы не нужными мне значениями. Мне нужно заполнить только первый столбец.


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
-Mikle-
Дата 26.5.2011, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Сделай как я написал выше. Определи класс с нужными свойствами (то бишь колонками). Затем инициализируй список экземплярами этого класс, но установи только одно свойство, остальные у тебя как я понял, будут заполняться пользователем. Из этого же списка потом и прочитаешь заполненный результат.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
ДобренькийПапаша
Дата 26.5.2011, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 2
Всего: 7



Привязал вот так. Привязанные данные отображает правильно, но зачем-то в двух других колонках выводит "SubwayTicketService.Deposition+NoteNominals"
Код

<ListView Name="BankNotesCaptured" Grid.Row="1" Margin="25,5,25,25" HorizontalAlignment="Center" ItemsSource="{Binding MoneyNoteNominals}">
                <ListView.View>
                    <GridView>
                        <GridView.Columns>
                            <GridViewColumn Width="120" Header="Номинал (руб)" DisplayMemberBinding="{Binding Path=Note}"></GridViewColumn>
                            <GridViewColumn Width="120" Header="Количество"></GridViewColumn>
                            <GridViewColumn Width="120" Header="Цена"></GridViewColumn>
                        </GridView.Columns>
                    </GridView>
                </ListView.View>
            </ListView>


Код

public partial class Deposition : Window
    {
        private List<NoteNominals> nominals = new List<NoteNominals>();
        public List<NoteNominals> MoneyNoteNominals
        {
            get { return nominals; }
        }

        public class NoteNominals
        {
            private int note;
            public int Note
            {
                get { return note; }
            }
            public NoteNominals(int note)
            {
                this.note=note;               
            }
        }

        public Deposition()
        {
            InitializeComponent();
            DataContext = this;
            FillNominals();
        }

        private void FillNominals()
        {
            nominals.Add(new NoteNominals(10));
            nominals.Add(new NoteNominals(50));
            nominals.Add(new NoteNominals(100));
        }
}



--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
-Mikle-
Дата 26.5.2011, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



В классе NoteNominals определи еще два свойства: количество и цена. Затем сделай привязку к ним в тех двух колонках. В данный момент, привязка осуществлена ко всему объекту и так как DasplayMemeberPath не указан, то вызывается метод ToString у всего объекта, чей результат и показывается в этих колонках.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
ДобренькийПапаша
Дата 27.5.2011, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 2
Всего: 7



Ну так я сразу мог сделать. Я так не хотел, ибо показалось как-то громоздко. Хотел попроще. Ну, предположим я так и сделал. Так писать значения во вторую колонку и третью теперь нельзя будет напрямую как-то? Только через свойства класса?

Это сообщение отредактировал(а) ДобренькийПапаша - 27.5.2011, 07:42


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
-Mikle-
Дата 27.5.2011, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 13
Всего: 59



Что значит напрямую? Из кода?


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
ДобренькийПапаша
Дата 27.5.2011, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 2
Всего: 7



Думал, можно будет обойтись без классов дополнительных. А вообще, в результате я сделал ObservableCollection, реализовал INotifyPropertyChanged. В общем, всё работает и ладно smile
Спасибо за помощь!


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0959 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.