locked
MVVM и подключение ObservableCollection к listbox RRS feed

  • Вопрос

  • Доброго времени суток. Уже который день пытаюсь подцепить ObservableCollection к listbox и как-то безуспешно. Задача простая, чтобы в листбокс выводились данные из коллекции и при изменение данных(добавление, удаление, изменение) в коллекции на экране отображалось изменения.

    есть класс 

    namespace MvvM
    {
        public class aMan
        {
            public int ID { get; set; }
            public string Name { get; set; }
            public string sex { get; set; }
        }
    }

    есть коллекция

    namespace MvvM
    {
        class view_model : ObservableCollection<aMan>
        {
            public void Namelist()
            {
                Add(new aMan() { ID = 0, Name = "Ben", sex = "M" });
                Add(new aMan() { ID = 1, Name = "Bob", sex = "M" });
            }
        }
    }

    а вот так выглядит  xaml

    xmlns:local="clr-namespace:MvvM"

    <Grid x:Name="ContentPanel"> <Grid.Resources> <local:view_model x:Key="vm"/> </Grid.Resources>

    <ListBox ItemsSource="{Binding Source={StaticResource vm}}"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Name}"/> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </Grid>

    В теории должен выводится список из двух имен, но как-то их вообще не видно.

    Мануалы читал в каждом по разному написано, и ни один не помогает. хелп!

    9 апреля 2013 г. 5:33

Ответы

  • Добрый день, Alan.

    А подскажите мне, пожалуйста, кто у вас вызывает метод NameList, чтобы он создал объекты в коллекции? Мне кажется никто. Поменяв ваш класс вот так, я увидел имена на форме:

    class view_model : ObservableCollection<aMan>
    {
        public view_model() : base()
        {
            Namelist();
        }
    
        public void Namelist()
        {
            Add(new aMan() { ID = 0, Name = "Ben", sex = "M" });
            Add(new aMan() { ID = 1, Name = "Bob", sex = "M" });
        }
    }

    • Предложено в качестве ответа Kirill Bessonov 9 апреля 2013 г. 6:19
    • Помечено в качестве ответа Alan Linvile 9 апреля 2013 г. 6:26
    9 апреля 2013 г. 6:17
    Отвечающий

Все ответы

  • Добрый день, Alan.

    А подскажите мне, пожалуйста, кто у вас вызывает метод NameList, чтобы он создал объекты в коллекции? Мне кажется никто. Поменяв ваш класс вот так, я увидел имена на форме:

    class view_model : ObservableCollection<aMan>
    {
        public view_model() : base()
        {
            Namelist();
        }
    
        public void Namelist()
        {
            Add(new aMan() { ID = 0, Name = "Ben", sex = "M" });
            Add(new aMan() { ID = 1, Name = "Bob", sex = "M" });
        }
    }

    • Предложено в качестве ответа Kirill Bessonov 9 апреля 2013 г. 6:19
    • Помечено в качестве ответа Alan Linvile 9 апреля 2013 г. 6:26
    9 апреля 2013 г. 6:17
    Отвечающий
  • Огромное спасибо)
    9 апреля 2013 г. 6:26