powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Программно добавить GridColumn в GridView
17 сообщений из 42, страница 2 из 2
Программно добавить GridColumn в GridView
    #37732151
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня проблема была в установке BandedViewBehavior для TableView, но у них на форуме нашел что надо было

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
TableView CreateView()
            {
                TableView tableView = new TableView()
                {
                    AllowHorizontalScrollingVirtualization = true,
                    AllowCascadeUpdate = true,
                    AllowPerPixelScrolling = false,
                    AutoScrollOnSorting = false,
                    AutoWidth = true,
                    AllowBestFit = false,
                    AllowEditing = false,
                    ShowColumnHeaders = true,
                    NavigationStyle = GridViewNavigationStyle.Row,
                    ShowGroupPanel = false,
                    ShowIndicator = false,
                    ShowAutoFilterRow = false
                };
                System.Windows.Interactivity.Interaction.GetBehaviors(tableView).Add(CreateBehavior()); //
                return tableView;
            }

            BandedViewBehavior CreateBehavior()
            {
                BandedViewBehavior behavior = new BandedViewBehavior();
                behavior.ColumnDefinitions.Add(new DevExpress.Xpf.Grid.ColumnDefinition());
                behavior.ColumnDefinitions.Add(new DevExpress.Xpf.Grid.ColumnDefinition());
                behavior.ColumnDefinitions.Add(new DevExpress.Xpf.Grid.ColumnDefinition());
                //
                behavior.RowDefinitions.Add(new DevExpress.Xpf.Grid.RowDefinition());
                behavior.RowDefinitions.Add(new DevExpress.Xpf.Grid.RowDefinition());                
                return behavior;
            }

            void ColumnsAdd()
            {
                //
                GridColumn gridColumn = new GridColumn()
                {
                    Header = "",
                    HorizontalHeaderContentAlignment = HorizontalAlignment.Center
                };
                BandedViewBehavior.SetColumn(gridColumn, 0);
                BandedViewBehavior.SetRow(gridColumn, 0);
                BandedViewBehavior.SetColumnSpan(gridColumn, 2);
                BandedViewBehavior.SetIsBand(gridColumn, true);
                _gridControl.Columns.Add(gridColumn);              
                //
                gridColumn = new GridColumn()
                {
                    Header = "",
                    HorizontalHeaderContentAlignment = HorizontalAlignment.Center,
                    FieldName = "Closed",
                    Fixed = FixedStyle.None,
                    FixedWidth = true,
                    Width = 50
                };
                BandedViewBehavior.SetColumn(gridColumn, 0);
                BandedViewBehavior.SetRow(gridColumn, 1);
                _gridControl.Columns.Add(gridColumn);
                //
                gridColumn = new GridColumn()
                {
                    Header = "",
                    HorizontalHeaderContentAlignment = HorizontalAlignment.Center,
                    FieldName = "Closed",
                    Fixed = FixedStyle.None,
                    FixedWidth = true,
                    Width = 50
                };
                BandedViewBehavior.SetColumn(gridColumn, 1);
                BandedViewBehavior.SetRow(gridColumn, 1);
                _gridControl.Columns.Add(gridColumn);            
            }


...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37736953
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не подскажите есть ли возможность вставить в наименование столбца что то типа
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37738204
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,
конечно можно, только нужно ли? )
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37738402
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно и это только для визуального восприятия (типа чтобы было перед глазами) как это реализовать подскажите пожалуйста. Какой компонент использовать, Calendar, привести к такому виду не могу. Спасибо
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37739858
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну если только для виз восприятия, я бы не делал - кому надо возьмет бумажный\откроет тут календарь и глянет
но если хочется сделать и убив время потешить свое это то
1
заголовок столбцов оставить название месяца по клику открывать календарь с выставленным годом\месяцем, столбцы данных как есть 1,2,3,4,5
2
заголовок столбца - экспандер с названием месяца, в него спрятать грид в котором изобразить свой 'календарь',
столбцы данных как есть 1,2,3,4,5
хорошая в этом плане штука впф куда что хочешь туда и сунь ) только опять, же в большинстве случаев скорее всего это в итоге никому не надо
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37740477
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне надо. Дело в том что это "шапка" графика учебного процесса. Проблему почти решил, затолкал нужное в ListBox осталось его затолкать в имя столбца
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37740618
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, не подскажите как спрятать в заголовок столбца - экспандер с названием месяца
Экспандер
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
<dxlc:LayoutControl>
            <dxlc:LayoutGroup Header="Layout Group" View="GroupBox" IsCollapsible="True" FlowDirection="RightToLeft">
                <dxlc:LayoutGroup.Resources>
                    <Style TargetType="dxlc:GroupBoxButton">
                    </Style>
                </dxlc:LayoutGroup.Resources>
                <ListBox Height="246" HorizontalAlignment="Left" Margin="564,104,0,0" Name="listBox1" VerticalAlignment="Top" Width="211" />
            </dxlc:LayoutGroup>
        </dxlc:LayoutControl>


столбец
Код: sql
1.
2.
3.
 <dxg:GridColumn FieldName="Common" dxgext:BandedViewBehavior.ColumnSpan="2">
                    
 </dxg:GridColumn>


Спасибо
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37746736
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема решена
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<dxg:GridColumn FieldName="Common" dxgext:BandedViewBehavior.ColumnSpan="2" dxgext:BandedViewBehavior.IsBand="True">
                    <dxg:GridColumn.Header>
                        <DataTemplate>
                            <toolkit:Expander Height="Auto" HorizontalAlignment="Left" Name="expander1" VerticalAlignment="Top" Width="186" Header="Expander"
                          Grid.Column="1">
                                <Grid HorizontalAlignment="Stretch" Name="grid1" VerticalAlignment="Stretch" Width="182" >
                                    <ListBox Height="128" HorizontalAlignment="Left" Name="listBox1" VerticalAlignment="Top" Width="182">
                                    </ListBox>
                                </Grid>
                            </toolkit:Expander>
                        </DataTemplate>
                   </dxg:GridColumn.Header>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="First" dxgext:BandedViewBehavior.Row="1"/>
                <dxg:GridColumn FieldName="Second" dxgext:BandedViewBehavior.Row="1" dxgext:BandedViewBehavior.Column="1"/>
            </dxg:GridControl.Columns>


В Expander грузится ListBox в него нужные данные. Только вот один вопрос заполняется ListBox в коде, а обратится к его свойствам не могу "listBox1.Items.Add(s);" не работает. Как его заполнить? Спасибо
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37746962
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Проблема решена
оперативно вы однако :D
мб лучше заполнять не листбокс, а источник данных, а затем указать listbox.ItemsSource = источник_данных
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37747038
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кусочек кода можно. Пытаюсь делать так
xaml
Код: sql
1.
2.
3.
<ListBox Height="128" HorizontalAlignment="Left" Name="listBox_calendar" VerticalAlignment="Top" Width="182"
                             ItemsSource="{Binding}" DisplayMemberPath="First">
</ListBox>


C#

public class Data
{
public string First { get; set; }
}

Как например заполнить ListBox
значениями
Код: sql
1.
2.
3.
4.
  for (line=0; line<=6; line++)
    {
     listBox_calendar.Items.Add(line.ToString());//Получилось бы если мог обратится к свойству Items
    }
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37747798
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема с гридом точнее с тем как правильно положить ListBox в Header.
данные
Код: sql
1.
2.
3.
4.
5.
6.
7.
 private ArrayList  GetData()
        {
            ArrayList data = new ArrayList();
            data.Add("1");
            data.Add("2");
            return data;
        }


"грузим" в ListBox
Код: sql
1.
DataContext = GetData();


Если ListBox "лежит отдельно" то все подгружается
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<DataTemplate x:Key="calendar">
            <toolkit:Expander Height="Auto" HorizontalAlignment="Right" Name="expander_calendar" 
                              VerticalAlignment="Top" Header="Expander"
                              Grid.Column="1">
                <Grid HorizontalAlignment="Stretch" Name="grid1">
                    <ListBox Height="100" HorizontalAlignment="Left"  Name="listBox2" 
                     VerticalAlignment="Top" Width="1200" ItemsSource="{Binding}">
                    </ListBox>
                </Grid>
            </toolkit:Expander>
        </DataTemplate>


Пытаюсь положить его в Header
Код: sql
1.
Header="{StaticResource calendar}"


листбокс там, а данных нет
принудительно добавил <ListBoxItem Content="3" />, и о чудо "троечка" загрузилась только с
Код: sql
1.
HeaderCustomizationAreaTemplate="{StaticResource calendar}"


Попытка загрузить данные DataContext = GetData(); не прокатила. Х.з. одним словом...
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37747935
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,

а что в DataContext Header'a находится посмотри, мб из за этого привязка не работает
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37747951
Фотография уТКа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,

ContentTemplate & DataTemplate создают свою область видимости имен, это некая "песочница", вот читайте

об этом я уже как-то говорил, но кто-то плохо читает :)
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37748086
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо огромное, всего то надо было подписаться на событие Loaded.
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37752295
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один вопросик, немного не по "сабжу" но...
Создаю программно столбцы таблицы упрощенный вариант следующий
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 for (i = 0; i <= 20; i++)// количество столбцов
            {
             for (j = 0; j <= 50; j++)// количество столбцов
              {
                s=x*y....;// что-то считаем
               GridColumn columns_grafik = new GridColumn()
               {
                  FieldName = "n"+i.ToString()
               };
               gridControl_grafik.Columns.Add(columns_grafik);
             }
         }


В общем в конце получается двухмерный массив который нужно засунуть в таблицу? Массив формируется построчно.
Если использовать структуру типа
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
   public class DataList : List<Data>
      {
         public DataList()
          {
          for (i = 0; i <= 20; i++)// количество столбцов
            {
             for (j = 0; j <= 50; j++)// количество столбцов
              {
                s=x*y....;// что-то считаем
               GridColumn columns_grafik = new GridColumn()
               {
                  FieldName = "n"+i.ToString()
               };
               gridControl_grafik.Columns.Add(columns_grafik);
             }
         }
          Data d = new Data();
          d.n1 = s;
          Add(d);
          }
.......
  public class Data
        {
            public string n1 { get; set; }
.....////Что в ручную все столбцы перечислять?
            public string n2 { get; set; }
        }
.......

     gridControl_grafik.DataContext = new DataList();


тут получилось добавить первый столбец. Нельзя ли добавлять (присваивать значения) ячейки Grid'а? Например во время получения нужного результата "сказать" что вот это должно "лежать" там
Спасибо
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37752332
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chek_Fedor,

тебе лучше, открыть свой блог на sql.ru.
чем мешать все в одной теме.
...
Рейтинг: 0 / 0
Программно добавить GridColumn в GridView
    #37754577
Chek_Fedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKChek_Fedor,

тебе лучше, открыть свой блог на sql.ru.
чем мешать все в одной теме.
Создам новую тему
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Программно добавить GridColumn в GridView
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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