Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/48: Рейтинг темы: голосов - 48, средняя оценка - 4.90
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5

WPF: создать таблицу с вложенными таблицами

29.03.2013, 17:56. Показов 9133. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно нужно построить вот такую таблицу:

то есть существует таблица больших итераций по K, в каждой из которых существует таблица небольших итераций по j. Вопрос: можно ли как-то разумно это все вывести? Желательно, либо забиндить либо добавлять прямо таблицы, потому что записывать напрямую в ячейки ну очень не хочется. Программная структура этой байды такая
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private readonly List<IterationDetails> details = new List<IterationDetails>(); //Вся табличка
 
    public class IterationDetails //Одна большая итерация по K
    {
        public Vector StartPoint { get; private set; }
        public double FunctionValue { get; private set; }
        public StepDetails[] StepDetails { get; private set; }
...
    }
 
   public class StepDetails //Одна маленькая итерация по j (одна строка)
    {
        public Vector Startpoint { get; private set; }
        public double Lambda { get; private set; }
        public Vector D { get; private set; }
        public Vector NewPoint { get; private set; }
        public double OldFuncValue { get; private set; }
        public double NewFuncValue { get; private set; }
        ...
    }
В общем, вопрос...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2013, 17:56
Ответы с готовыми решениями:

Работа с вложенными таблицами
Есть большая таблица, ячейки которой также содержат таблицы. Их огромное количеству. Нужно им все задать стили: ширина: 100%, установить...

Связи с вложенными таблицами Oracle
Подскажите, пожалуйста, как создать связь: 1) из вложенной таблицы (вложенная таблица - подчиненная) 2) у вложенную таблицу (вдложенная...

Помогите разобраться с вложенными таблицами в Oracle8
Вот таже самая проблема... Нужна создать в формсе форму для вставки данных в таблицу, причем в ней есть еще и вложенная. Во вложенной...

20
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
29.03.2013, 18:28
есть готовые и платные красивые решения из коробки http://habrahabr.ru/post/167751/
а так, что вам мешает расположить ListView внутри ListView?
что-то вроде такого:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  <ListView DataContext="{Binding ElementName=Window1}" 
                  ItemsSource="{Binding ItemList}" 
                  BorderThickness="0"
                  x:Name="itemListView"
                  SelectionChanged="itemListView_SelectionChanged"> 
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ListView DataContext="{Binding ElementName=Window1}" 
                              ItemsSource="{Binding SubList}"
                              BorderThickness="0"
                              x:Name="subListView"
                              SelectionChanged="subListView_SelectionChanged">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <Label Content="{Binding}"/>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
29.03.2013, 18:41  [ТС]
kenny69, ничего, подобное решение я и хотел увидеть, чтобы своего не велосипедить. Спасибо за ссылку

Добавлено через 4 минуты
Правда пока зайти почему-то не могу: 502
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
01.04.2013, 14:48  [ТС]
kenny69, чет не выходит: написал для начала вот так:
XML
1
2
3
4
5
6
7
8
9
            <ScrollViewer Grid.Column="3" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
                <ListView Name="ResultDetails">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding ElementName=ResultDetails, Path=StartPoint}"/>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </ScrollViewer>
В коде пишу:
C#
1
2
3
4
5
6
7
8
            ResultPanel.DataContext = 
                new
                    {
                        Result = vector.ToString(),
                        FunctionValue = function(vector),
                        Iterations = rosenbrock.Details.Count()
                    };
            ResultDetails.DataContext = rosenbrock.Details;
ResultPanel - заполняется, а вот DataContext - не хочет.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
01.04.2013, 14:58  [ТС]
Манипуляции с ItemsSource тоже ничего не дали. Весь проект скидываю, если надо:
Вложения
Тип файла: rar VectorOptimization.rar (63.3 Кб, 27 просмотров)
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
01.04.2013, 15:23
ResultDetails - это listview, для него надо указывать itemsource. у вас не указан.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
01.04.2013, 15:27  [ТС]
kenny69,
я писал
C#
1
 ResultDetails.DataContext =  ResultDetails.ItemsSource = rosenbrock.Details;
и фиг там.
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
01.04.2013, 16:03
в xaml просто <TextBlock Text="{Binding Path=StartPoint}"/>
кстати эл. появляются, а текста нет... так что еще посмотрите, чтобы ваше свойство StartPoint все правильно возвращало.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
01.04.2013, 16:16  [ТС]
kenny69, нухз, он переопределяет ToString, все должно быть норм

Добавлено через 5 минут
Все работает. Действительно, c itemsSource надо было поплотнее позаниматься. Все отображается, все хорошо

Небольшой вопрос: как пронумеровать строки? А То заводить отдельную структуру, которая будет оригинальная + счетчик не очень хочется.
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
01.04.2013, 16:44
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<ListView Name="listviewNames">
  <ListView.View>
    <GridView>
      <GridView.Columns>
        <GridViewColumn
          Header="Number"
          DisplayMemberBinding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, 
          Converter={StaticResource IndexConverter}}" />
        <GridViewColumn
          Header="Name"
          DisplayMemberBinding="{Binding Path=Name}" />
      </GridView.Columns>
    </GridView>
  </ListView.View>
</ListView>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class IndexConverter : IValueConverter
{
    public object Convert(object value, Type TargetType, object parameter, CultureInfo culture)
    {
        ListViewItem item = (ListViewItem) value;
        ListView listView = ItemsControl.ItemsControlFromItemContainer(item) as ListView;
        int index = listView.ItemContainerGenerator.IndexFromContainer(item);
        return index.ToString();
    }
 
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
01.04.2013, 16:54  [ТС]
C#
1
2
          DisplayMemberBinding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, 
          Converter={StaticResource IndexConverter}}" />
хм, может тогда сразу сделать грид? Без listview? А то свойство Name ничего не отображает
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
01.04.2013, 16:57
ну так это пример был. тут главное конвертер и строка
XML
1
2
"{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, 
          Converter={StaticResource IndexConverter}}"
Добавлено через 1 минуту
так можно и <Textbox Text={Binding}/> и внутри привязка
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
01.04.2013, 16:58  [ТС]
kenny69, да я уж понял, просто почему-то подумал, что это имя только заголовка. Проблема в том, что у меня датагрид очень тормозит (на HD4000 ресайз происходит с задержкой и черными "полосками" - не успевает прорисовываться). Поэтому думал, может есть какой-нибудь другой способ. Но если нет, тогда будет датагрид, причем с вложенными датагридами
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
01.04.2013, 16:59
grid в основном для редактирования данных, тут же ничего редактировать не надо.
и там тоже lisview в примере, просто отображение строки сделано в виде разбиения на колонки.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
01.04.2013, 17:09  [ТС]
kenny69, мне нужно примерно так

Ну чтобы в итоге получить то, что у меня в первом посте
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
02.04.2013, 15:25  [ТС]
Нет идей?

Добавлено через 17 часов 17 минут
Хорошо, может знаете, как объединить ячейки с одинаковыми данными?

Добавлено через 3 минуты
То есть, чтобы он автоматически объединял ячейки, в которых находятся одинаковые значения? Я просто не знаю, можно ли в датагриде (gridview) это делать. Датагрид слишком тяжелый, а гридвью то что нужно, мне кажется.
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
02.04.2013, 18:23
просто я вроде как все рассказал, как это сделать. лень просто писать . она такая великая беда программистов.

Цитата Сообщение от Psilon Посмотреть сообщение
объединял ячейки, в которых находятся одинаковые значения
имеется ввиду группировка по одинаковым значениям?

http://msdn.microsoft.com/ru-r... 54027.aspx
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
02.04.2013, 19:23  [ТС]
Цитата Сообщение от kenny69 Посмотреть сообщение
имеется ввиду группировка по одинаковым значениям?
видимо у меня с русским не то
надо так

Если это то - то я не понял, как с этим работать. Мне показалось, это какая-то сортировка на основании какого-то поля...
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
02.04.2013, 19:56
почти так... только не сортировка, а группировка.
получится должно так:

abcd
1
2
qwer
1
2
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
02.04.2013, 20:08  [ТС]
kenny69, ясно, все же, это видимо не совсем то. Ладно, оставлю как есть. Если будет желание, поковыряйтесь
Вложения
Тип файла: rar VectorOptimization.rar (85.3 Кб, 21 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.04.2013, 20:08
Помогаю со студенческими работами здесь

Как преобразовать таблицу с ltree-структуру в таблицу с вложенными множествами в PostgreSQL?
Добрый день. Я бы хотел спросить о возможности преобразования таблицы PostgreSQL, в которой используется структура ltree в таблицу со...

WPF MVVM EntityFramework SQLite работа с двумя и более таблицами
Здравствуйте. Изучая MVVM и EntityFramework возник вопрос как работать с двумя и более таблицами. Поиск в интернете выдает статьи где...

Создать двумерный массив с 2 вложенными циклами
Создать двухмерных массив с 2 вложенными циклами. Результат должен быть в виде таблицы. C_{ij}=\begin{cases}i^2+j^2 &amp; \text{ if...

Как создать Dll с вложенными функциями?
Здравствуйте! Подскажите пожалуйста как в Delphi dll создавать процедуры или функции, в которых вызываются другие более простые функции? ...

Создать в цикле массив с вложенными элементами
Здравствуйте, столкнулся с проблемой, не получается создать массив с вложенными элементами с помощью цикла. есть массив var...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru