Как динамически создавать столбцы в MVVM

#mvvm

#mvvm

Вопрос:

я должен создать диалоговое окно, в котором столбцы должны генерироваться во время выполнения, ранее я использовал таблицу данных WPF, поэтому генерация столбцов во время выполнения не была проблемой. Теперь я должен использовать View Model, мне нужно иметь свойства для любых полей, которые я хочу отобразить в view в виде столбцов. количество столбцов неизвестно во время разработки, установить привязку для таблицы данных невозможно.Было бы безумием, если бы я создавал свойства во время выполнения с использованием отражения, есть ли какой-либо способ, которым я могу привязать поля, созданные во время выполнения, к столбцу таблицы данных.

Комментарии:

1. Использовали ли вы AutoGeneratedColumns = true ?

2. Я не использую WPF grid, его таблицу данных Xceed, которая не обладает таким свойством. он создает столбцы для свойств, определенных в ViewModel.

3. Есть ли четкая цель использования компонентов третьей части? Если да — это скорее вопрос Xceed, а не MVVM.

4. Это вызывается AutoCreateColumns в сетке xceed. Попробуйте это… В противном случае посмотрите на ответ Майка. ExpandoObject кажется хорошей идеей, если вы используете .NET 4.0.

Ответ №1:

Если вы работаете на .NET 4, вы можете использовать ExpandoObject. Он реализует INotifyPropertyChanged для вас.