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


Автор: BestRoot 28.7.2009, 09:32
Как добавить items в listview.Проблема состоит в том что бы добавить SubITEMS  

вот код хамлы:
Код

   <ListView Name="lw"  Margin="55.731,48.586,14.29,241.501" >
            <ListView.View>
                <GridView AllowsColumnReorder="true">
                    <GridViewColumn Header="Наименование" />
                    <GridViewColumn Header="Цена" />
                    <GridViewColumn  Header="Кол-во"/>
                    <GridViewColumn Header="Сумма"/>
                </GridView>
            </ListView.View>
            
            <ListViewItem>xxxx</ListViewItem>
        </ListView>


пытался вбить так но не работает 
Код

lw.Items.Add("1");
 lw.Items[0]. <и пусто >


помогите плиз smile

Автор: EJack 31.7.2009, 07:26
Вам надо определить шаблон DataTemplate и прибиндить его к ItemTemplate вашего ListView
и потом соотвественно прибиндить данные (выже их откудато берете?)

Автор: BestRoot 31.7.2009, 08:46
Цитата(EJack @ 31.7.2009,  07:26)
Вам надо определить шаблон DataTemplate и прибиндить его к ItemTemplate вашего ListView
и потом соотвественно прибиндить данные (выже их откудато берете?)

а плиз можно по подробней 

Данные я беру ....
ну, например
Код

string Name; // Наименование
string C;        // Цена
string K;        // Кол-во
string S;        // Сумма

//  КАК это вбить ?
//  ........



Автор: Rohoss 1.8.2009, 08:39
Могу, конечно, ошибаться, но вроде как ListView не может содержать несколько вложенных друг в друга GridViewColumn. Для этого вам стоит использовать TreeView или же морочится с Template'ами

Автор: kobra 1.8.2009, 19:46
Цитата(Rohoss @  1.8.2009,  08:39 Найти цитируемый пост)
Могу, конечно, ошибаться, но вроде как ListView не может содержать несколько вложенных друг в друга GridViewColumn.
точно ошибаитес smile GridViewColumn-ы содержит не ListView а GridView.
а вот ListView и правда не может содержать более одного GridView. та к что итемы нужно вставлять не в ListView а биндить к GridViewColumn

Автор: EJack 2.8.2009, 07:36
Цитата(Rohoss @ 1.8.2009,  08:39)
Могу, конечно, ошибаться, но вроде как ListView не может содержать несколько вложенных друг в друга GridViewColumn. Для этого вам стоит использовать TreeView или же морочится с Template'ами

В определении листвью пишешь так:
Код

<ListView Name="mainListView">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Наименование" DisplayMemberBinding="{Binding Path=Title}"/>
                <GridViewColumn Header="Цена" DisplayMemberBinding="{Binding Path=Cost}"/>
                <GridViewColumn Header="Количество" DisplayMemberBinding="{Binding Path=Amount}"/>
                <GridViewColumn Header="Сумма" DisplayMemberBinding="{Binding Path=Summ}"/>
            </GridView>
        </ListView.View>
    </ListView>


Надо создать класс данных (бизнес объект) он может быть просто классом, или DataTable (DataRow) или полученный из запроса LINQ и т.д.
Код

class SomeClass
    {
        public String Title { get; set; }
        public double Cost { get; set; }
        public int Amount { get; set; }
        public double Summ { get {return Cost * Amount;} }
    }


Вот так я иницилизировал коллекцию объектов
Код

List<SomeClass> list = new List<SomeClass>();
            list.Add(new SomeClass() { Title = "Бананы", Cost = 30, Amount = 5 });
            list.Add(new SomeClass() { Title = "Помидоры", Cost = 25, Amount = 15 });
            list.Add(new SomeClass() { Title = "Редис", Cost = 60, Amount = 1 });
            list.Add(new SomeClass() { Title = "Картошка :)", Cost = 90, Amount = 50 });

            mainListView.ItemsSource = list;

Автор: BestRoot 3.8.2009, 07:17
Спасибо большое все работает )))) 

ТЕМА ЗАКРЫТА 

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