powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGrid + Binding
10 сообщений из 10, страница 1 из 1
DataGrid + Binding
    #36978073
outerjoin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем. Подскажите, где я ошибся. У меня есть класс

Код: plaintext
1.
2.
3.
4.
5.
public class Person
{
    public string Name { get; set; }

    public int Age { get; set; }
}

Есть вьюмодел:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class PersonViewModel
{
    private ObservableCollection<Person> _persons = new ObservableCollection<Person>();

    public ObservableCollection<Person> Persons
    {
        get { return _persons; }
        set { _persons = value; }
    }
}

Есть грид:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<Window x:Class="TestWpfApplication.MainWindow" ...
        DataContext="{Binding RelativeSource={RelativeSource Self}}">
    <Grid>
        <DataGrid ItemsSource="{Binding PersonViewModel, Path=Persons}">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Name" Binding="{Binding Name}"></DataGridTextColumn>
                <DataGridTextColumn Header="Age" Binding="{Binding Age}"></DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>

Список персон я заполняю в конструкторе окна. В итоге ничего не отображается, что тут неправильно?
...
Рейтинг: 0 / 0
DataGrid + Binding
    #36978077
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ItemsSource="{Binding PersonViewModel, Path=Persons}" - тут неправильно

нужно так:
конструктор: this.DataContext = new PersonViewModel();
xaml: ItemsSource="{Binding Persons}"
...
Рейтинг: 0 / 0
DataGrid + Binding
    #36978080
outerjoin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вестник,

Спасибо, да, так работает. А почему первый вариант не срабатывает?
...
Рейтинг: 0 / 0
DataGrid + Binding
    #36978086
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в первом варианте масло маслянное.
1. фактически вы написали ItemsSource="{Binding Path =PersonViewModel, Path=Persons}", т.к. Path - это свойство по умолчанию
2. ItemsSource="{Binding PersonViewModel}" на самом деле означает ItemsSource = DataContext.PersonViewModel, причем DataContext "наследуется" от родителя по умолчанию
3. вы попытались DataContext установить в само окно (не уверен, что то, что вы написали в Window DataContext = ... имеет смысл. можно смело удалить), но наверняка там нет свойства PersonViewModel
...
Рейтинг: 0 / 0
DataGrid + Binding
    #36978088
outerjoin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вестник,

Свойство в Window есть, а вот про масло я не знал, большое спасибо
...
Рейтинг: 0 / 0
DataGrid + Binding
    #36978090
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда можно было написать DataGrid ItemsSource={Binding PersonViewModel.Persons} или DataGrid DataContext={Binding PersonViewModel} ItemsSource={Binding Persons}
...
Рейтинг: 0 / 0
DataGrid + Binding
    #36978144
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
...
Рейтинг: 0 / 0
DataGrid + Binding
    #36978226
outerjoin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ссылку, но я что-то не уловил к чему она здесь
...
Рейтинг: 0 / 0
DataGrid + Binding
    #36978275
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
outerjoinСпасибо за ссылку, но я что-то не уловил к чему она здесь
Да, проблемы у тебя были в другом.Невнимательно прочел только объяснения Вестника.
...
Рейтинг: 0 / 0
DataGrid + Binding
    #36980413
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
и вообще я мало чего читаю в вопросах, а сразу начинаю отвечать
ведь евангелистам платят именно за количество постов
так что не обращайте большого внимания на мои потоки сознания
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGrid + Binding
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]