2016-02-08 6 views
-1

Как создать представление Datagrid с динамически генерирующими столбцами combobox (через C#) и как я могу привязать данные к динамически генерируемым столбцам (через MVVM). Я хочу, чтобы генерировать различные коллекции данных для каждого выпадающего списка внутри автоматически созданного столбца.Как создать представление wpf Datagrid с динамически генерирующими столбцами столбцов

Заранее спасибо.

+0

Мне нужно добавить несколько столбцов с Наримером к существующей сетке во время выполнения динамически из действия кнопки мыши. Я не знаю, сколько столбцов нужно добавить, при каждом нажатии кнопки необходимо добавить один дополнительный столбец combobox и данные должны быть привязаны. – Dharma

ответ

0

Не знаете, почему вы хотите добавить combobox через C#. Почему бы не использовать столбец шаблонов, где вы используете MVVM, как вам следует. Вид определен в XAML, а содержимое передается через данные ViewModel.

<DataGridTemplateColumn Header="ColumnHeader"> 
    <DataGridTemplateColumn.CellTemplate> 
      <DataTemplate> 
       <local:CostumControlWithCombobox Text="{Binding Path=YourListToPickFrom}"/> 
      </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

Если списки выбора могут быть разными для определенной строки. Вам нужно правило или параметр, как связать соответствующий список. Обратите внимание, что также можно добавлять элементы управления с mvvm-поведением в TemplateColumn (только для демонстрации), но вы также можете привязать к самому списку списков.

Если вы по-прежнему предпочитаете создавать это через код C# Проверьте документацию класса DataGridTemplateColumn, к которой также можно получить доступ через код. https://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtemplatecolumn(v=vs.110).aspx

НТНО

+0

Мне нужно добавить несколько столбцов с выпадающими списками в существующий datagrid во время выполнения динамически действия нажатия кнопки. Я не знаю, сколько столбцов нужно добавить, при каждом нажатии кнопки необходимо добавить один дополнительный столбец combobox, а данные должны быть привязаны. – Dharma

+0

У вас должны быть столбцы, определенные в вашей модели просмотра, и привязка данных должна обрабатывать обновление представления. Итак, логика находится в модели представления, и представление обновляется через привязку – silverfighter

+0

Я не знаю, сколько столбцов следует добавить, это должно зависеть от пользователя во время выполнения – Dharma

Смежные вопросы