Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > WPF и Silverlight > Визуализация двумерного массива в wpf DataGrid |
Автор: spartak1501 20.10.2011, 13:25 | ||
Здравствуйте, помогите отбразить матрицу в DataGrid!!! Не получается ее прикрепить... Это код консоли C#
Этот код должен использоваться в WPF проекте... Как привязать матрицу table.Rule[i, j] к wpf DataGrid? |
Автор: Gvozdin 20.10.2011, 13:52 |
А что конкретно не получается? DataGrid оперирует понятиями строка и столбец. Преобразуете вашу матрицу к списку строк с данными(List<RuleRow> или даже просто List<int[]>), их количество будет i. Ставите его в DataGrid.ItemsSource. Далее для каждой колонки, их будет всего j, создаете DataGridTextColumn и задаете ему Binding = new Binding(String.Format("[{0}]", j)). Запихиваете эти колонки в DataGrid.Columns. Примерно так все должно работать. |
Автор: spartak1501 25.11.2011, 17:17 | ||
Как это сделать? |
Автор: Gvozdin 25.11.2011, 20:05 |
Ну как обычно. Проходите циклом по строкам. Из строки делаете int[]. Все строки складываете в List<int[]>. Подробнее? ![]() |
Автор: spartak1501 25.11.2011, 21:04 |
Да, если можно! Особенно с выводом в DataGrid... Будет ли он отображать двумерный массив? |
Автор: Буратиныч 12.1.2012, 21:00 |
Тоже интересен какой-нибудь простой наглядный пример отражения массива или коллекции в DataGrid на C# и XAML. Не получается никак сделать привязку к таблице. |
Автор: Gvozdin 12.1.2012, 21:18 |
Да никаких проблем http://www.codeproject.com/KB/WPF/WPFDataGridExamples.aspx - для тех кто работает через DataSet http://www.i-programmer.info/programming/wpf-workings/620-using-the-wpf-net-40-datagrid-.html - для тех кто предпочитает MVVM |
Автор: Буратиныч 16.1.2012, 10:13 | ||
Не могу пока найти решения как привязать коллекцию, не имеющую заранее определённого количества строк и столбцов, типа [code=csharp]
Правильно я понимаю, что нужно создавать отдельный класс, который будет определять свойство для каждой ячейки или всё гораздо проще? Покажите пример, плз. |
Автор: Gvozdin 16.1.2012, 10:24 |
Ну пусть у нас будет IList<string[]> (в принципе тоже что и string[][]) Ставим нашу коллекцию в DataGrid.ItemsSource и делаем колонки: <DataGridTextColumn Binding={Binding Path=[0]}/> <DataGridTextColumn Binding={Binding Path=[1]}/> <DataGridTextColumn Binding={Binding Path=[2]}/> Если заранее не известно сколько будет колонок, то придется динамически создавать колонки из кода. |
Автор: Буратиныч 16.1.2012, 11:18 | ||
Да, нужно как раз динамически создавать колонки из кода. Конструкция должна быть типа такой? Что ещё необходимо добавить? В XALM остаётся только dataGrid1 кинуть?
|
Автор: Буратиныч 16.1.2012, 20:28 |
Вообще возможно ли размещение в таблице данных в массиве или коллекции с заранее неопределённой размерностью? Может я зря трачу время на поиски ответа и не там копаю, и стоит вернуться в Windows Forms. Задача то вроде простейшая. |