Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 42
1

Подскажите совет как разобраться с загрузкой разного контента

19.11.2017, 17:21. Показов 746. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется пункты меню
XML
1
2
3
4
 <MenuItem Header="База данных">
                <MenuItem Header="База птиц" Command="{Binding OpenDbPticiCommand}"/>
                <MenuItem Header="База кормов"/>
            </MenuItem>
При выборе одного из пункта открывается новое окно

C#
1
2
3
4
5
6
7
8
9
10
11
12
 // команда открытия базы данных птиц
        #region Открываем страницу с базой
        public RelayCommand OpenDbPticiCommand => openDbPticiCommand ??
                  (openDbPticiCommand = new RelayCommand((o) =>
                  {
                      DbViews newDbPticiViews = new DbViews();
                      newDbPticiViews.Owner = Application.Current.MainWindow;
                      newDbPticiViews.Title = "База данных птиц";
                      newDbPticiViews.Show();
 
                  }));
        #endregion
XML
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
74
75
76
77
78
79
80
81
82
83
84
85
86
<Controls:MetroWindow
    xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls" x:Class="HelpFarmer.View.DbViews"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
    mc:Ignorable="d"
    xmlns:Dialog="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
Dialog:DialogParticipation.Register="{Binding}"
        Height="600" Width="800"
    BorderBrush="{DynamicResource AccentColorBrush}">
 
    <Grid>
        <DockPanel LastChildFill="True">
            <ToolBar DockPanel.Dock="Top"   HorizontalAlignment="Center">
                <Button ToolTip="Добавление категории в БД" Command="{Binding AddDB}">
                    <StackPanel Orientation="Horizontal">
                        <iconPacks:PackIconModern Kind="ListAddAbove" Foreground="#FF168504" />
                        <TextBlock Text="Добавить" Margin="5 0 0 0" Foreground="#FF168504"/>
                    </StackPanel>
                </Button>
                <Button ToolTip="Редактировать выбранную позицию" Command="{Binding EditDB}" 
                        CommandParameter="{Binding SelectedItem, ElementName=dgDB}" Foreground="#FFBD8E28" >
                    <StackPanel Orientation="Horizontal">
                        <iconPacks:PackIconModern Kind="Edit" />
                        <TextBlock Name="tlbEdit" Text="Редактировать" Margin="5 0 0 0"  />
                    </StackPanel>
                </Button>
                <Button ToolTip="Удалить выбранную позицию" Foreground="#FFFD0000" Command="{Binding DelDBCommand}" CommandParameter="{Binding SelectedItem, ElementName=dgDB}">
                    <StackPanel Orientation="Horizontal">
                        <iconPacks:PackIconModern Kind="ListDelete"/>
                        <TextBlock Name="tlbDel" Text="Удалить" Margin="5 0 0 0"/>
                    </StackPanel>
                </Button>
            </ToolBar>            
            <DataGrid    Name="dgDB" ItemsSource="{Binding CategoryBirds}" Margin="10,20,10,20"
                  AutoGenerateColumns="False" 
                      Style="{StaticResource AzureDataGrid}" GridLinesVisibility="All" CanUserResizeRows="False"
                      FrozenColumnCount="1" VerticalAlignment="Top" CanUserResizeColumns="False" AlternationCount="1" CanUserAddRows="False">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Наименование категории"  Binding="{Binding Path=KategoriyPtici}"/>
                    <DataGridTextColumn Header="Обменная энергия" Binding="{Binding Path=ObmEnBird}" />
                    <DataGridTextColumn Header="Сырой протеин" Binding="{Binding Path=ProteinBird}"/>
                    <DataGridTextColumn Header="Кальций" Binding="{Binding Path=KalcijBird}"/>
                    <DataGridTextColumn Header="Сырой фосфор" Binding="{Binding Path=FosforBird}"/>
                    <DataGridTextColumn Header="Натрий" Binding="{Binding Path=NatrijBird}"/>
                    <DataGridTextColumn Header="Сырая клетчатка" Binding="{Binding Path=KletqatkaBird}"/>
                    <DataGridTextColumn Header="Жир" Binding="{Binding Path=GirBird}" />
                    <DataGridTextColumn Header="Линол" Binding="{Binding Path=LinolBird}"/>
                    <DataGridTextColumn Header="Лизин" Binding="{Binding Path=LizinBird}"/>
                    <DataGridTextColumn Header="Мет+Цистин" Binding="{Binding Path=MetCistBird}"/>
                    <DataGridTextColumn Header="Триптофан" Binding="{Binding Path=TriptofanBird}"/>
                    <DataGridTextColumn Header="Аргинин" Binding="{Binding Path=ArgoninBird}"/>
                    <DataGridTextColumn Header="Гистидин" Binding="{Binding Path=GlistidinBird}"/>
                    <DataGridTextColumn Header="Лейцин" Binding="{Binding Path=LejcinBird}"/>
                    <DataGridTextColumn Header="Изолейцин" Binding="{Binding Path=ILejcinBird}"/>
                    <DataGridTextColumn Header="Фенилаланин" Binding="{Binding Path=FenilananinBird}"/>
                    <DataGridTextColumn Header="Тирозин" Binding="{Binding Path=TirozinBird}"/>
                    <DataGridTextColumn Header="Треонин" Binding="{Binding Path=TreoninBird}"/>
                    <DataGridTextColumn Header="Валин" Binding="{Binding Path=WalinBird}"/>
                    <DataGridTextColumn Header="Глицин" Binding="{Binding Path=GlicinBird}"/>
                    <DataGridTextColumn Header="Марганец" Binding="{Binding Path=MarganecBird}"/>
                    <DataGridTextColumn Header="Цинк" Binding="{Binding Path=CinkBird}"/>
                    <DataGridTextColumn Header="Железо" Binding="{Binding Path=GelezoBird}"/>
                    <DataGridTextColumn Header="Мед" Binding="{Binding Path=MedBird}"/>
                    <DataGridTextColumn Header="Кобальт" Binding="{Binding Path=KobaltBird}"/>
                    <DataGridTextColumn Header="Йод" Binding="{Binding Path=JodBird}"/>
                    <DataGridTextColumn Header="Селен" Binding="{Binding Path=SelenBird}"/>
                    <DataGridTextColumn Header="Витамин A" Binding="{Binding Path=ABird}"/>
                    <DataGridTextColumn Header="Витамин D3" Binding="{Binding Path=D3Bird}"/>
                    <DataGridTextColumn Header="Витамин E" Binding="{Binding Path=EBird}"/>
                    <DataGridTextColumn Header="Витамин K" Binding="{Binding Path=KBird}"/>
                    <DataGridTextColumn Header="Витамин B1" Binding="{Binding Path=B1Bird}"/>
                    <DataGridTextColumn Header="Витамин B2" Binding="{Binding Path=B2Bird}"/>
                    <DataGridTextColumn Header="Витамин B3" Binding="{Binding Path=B3Bird}"/>
                    <DataGridTextColumn Header="Витамин B4" Binding="{Binding Path=B4Bird}"/>
                    <DataGridTextColumn Header="Витамин B5" Binding="{Binding Path=B5Bird}"/>
                    <DataGridTextColumn Header="Витамин B6" Binding="{Binding Path=B6Bird}"/>
                    <DataGridTextColumn Header="Витамин C" Binding="{Binding Path=CBird}"/>
                    <DataGridTextColumn Header="Суточная норма" Binding="{Binding Path=SNormaBird}"/>                    
                </DataGrid.Columns>
            </DataGrid>
        </DockPanel>
    </Grid>
</Controls:MetroWindow>
Так вот в чем вопрос, т.к. базы имеют одинаковую структуру таблиц, как сделать так, чтобы в зависимости от того какой пункт был выбран подгружался свой DataGrid... со своим контекстом

я примерно представляю что нужно как то через ContentControl наверное
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2017, 17:21
Ответы с готовыми решениями:

Вывод разного контента по условию
Если url &quot;http://test.ru/index.php?error=confirmation&quot; то выводить на странице нужный текст, а если...

Создание страниц с выводом разного контента
Добрый вечер! Возможно ли в WP создать несколько независящих друг от друга страниц с выводом...

Проблемы, связанные с ContentManager и загрузкой/выгрузкой контента
Краткая сводка: 1) Рабочий пример загрузки текстуры 2) RootDirectory нельзя изменить после...

Отслеживание изменений URL на сайте с динамической загрузкой контента
Подскажите пожалуйста, как отслеживать изменения URL при динамической загрузке контента,...

5
82 / 82 / 32
Регистрация: 17.02.2016
Сообщений: 226
20.11.2017, 19:30 2
Я в C# начинающий, но я для себя подобную задачу (несколько таблиц в 1 окне) делал по этому мануалу:
https://azerdark.wordpress.com... on-in-wpf/
Конечно, немного не то, что ты хочешь. Это решение что-то вроде фреймов в html.
Можно ещё через вкладки реализовать смену.
0
7 / 7 / 2
Регистрация: 20.04.2011
Сообщений: 163
21.11.2017, 07:22 3
Почитай про Класс DataTemplateSelector, Класс DataTrigger
0
burning1ife
1462 / 1284 / 293
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
23.11.2017, 02:55 4
Если в одной таблице, то сделать autogeneratecoumns =true
А названия колонок можно менять с помощью DisplayAttribute https://www.codeproject.com/Ti... bControls/
0
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 42
07.12.2017, 20:13  [ТС] 5
Всем спасибо, с данным вопрос я разобрался.

Но появился другой...
Есть локальная база, есть модели таблиц. работаю с entity framework.

В datacontex грузятся таблицы
C#
1
2
3
 
CategoryKorms = db.CategoryKorms.Local.ToBindingList();
BaseGroupKorms = db.BaseGroupKorms.Local.ToBindingList();
, но из таблицы CategoryKorms есть связь с BaseGroupKorms

т.е. в таблице CategoryKorms есть поле группы , а сами эти группы находятся BaseGroupKorms

И у меня никак не получается сделать так, чтобы при открытии CategoryKorms через привязку выводились в DataGridComboBoxColumn все группы которые есть в BaseGroupKorms и был выбран тот (по умолчанию) который выбран по id в CategoryKorms..

Перечитал все про entity framework., но что то догнать не могу. Как то через привязку данных и тд и тп
0
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 42
10.12.2017, 18:40  [ТС] 6
Всем спасибо за советы... Уже разобрался
0
10.12.2017, 18:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2017, 18:40
Помогаю со студенческими работами здесь

Оптимизация и доработка выпадающего меню с загрузкой, посредством Ajax, контента
Всем добра. Делаю меню для сайта, вот сам код. &lt;ul class=&quot;sub-catalog&quot;&gt; &lt;li&gt; &lt;a...

Подскажите литературу о том, как создавался ИИ для разного рода игр!
Привет! Подскажите, please, литературу о том, как создавался ИИ для разного рода игр! Если...

Перед загрузкой операционной системы приходится прописывать разрешение, подскажите как это исправить
постоянно перед загрузкой операционной системы приходится прописывать разрешение подскажите как...

Дайте совет,как разобраться с методом IndexOf
Доброго (мб нет) времени суток.Нужен совет. Хочу использовать метод IndexOf(нужен именно он) в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru