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

Работа с wpf для меня

08.12.2020, 07:27. Показов 3250. Ответов 0

Author24 — интернет-сервис помощи студентам
Все работает кроме авторизации
Оля Шапинская, сегодня в 3:27
Любить значит страдать но не любить тоже значит страдать
в файле модели(BaseModel.Context.cs)
пишем
C#
1
2
3
4
5
6
7
8
9
private static ToursBaseEntities _context; 
 
 public static ToursBaseEntities GetContext() 
 { 
 if (_context == null) 
 _context = new ToursBaseEntities(); 
 return _context; 
 
 }
В app.xaml прописываю стили
XML
1
2
3
4
5
6
 <Style TargetType="Button"> 
 <Setter Property="Margin" Value="5"/> 
 <Setter Property="Width" Value="175"/> 
 <Setter Property="Height" Value="30"/> 
 <Setter Property="Background" Value="#FFFAC716"/> 
 </Style>
Создаем новый класс для получения фрейма с главной формы, для переходов
C#
1
2
3
4
 class Manager 
 { 
 public static Frame MainFrame { get; set; } 
 }
потом делаю разметку
XML
1
 <ComboBox SelectedItem="{Binding Country}" Grid.Column="1" Grid.Row="2" x:Name="ComboCountries" DisplayMemberPath="Name" />
в файле для добавления и редактирования это
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
 private Hotel _currentHotel = new Hotel(); 
 
 public AddEditPage(Hotel selectedHotel) 
 { 
 if(selectedHotel != null) 
 { 
 _currentHotel = selectedHotel; 
 } 
 InitializeComponent(); 
 DataContext = _currentHotel; 
 ComboCountries.ItemsSource = Home.GetContext().Country.ToList(); 
 } 
 
 private void btnSave_Click(object sender, RoutedEventArgs e) 
 { 
 StringBuilder errors = new StringBuilder(); 
 if (string.IsNullOrWhiteSpace(_currentHotel.Name)) 
 errors.AppendLine("Введите название отеля"); 
 if (_currentHotel.CountOfStars < 1 || _currentHotel.CountOfStars > 5) 
 errors.AppendLine("Введите число от 1 до 5"); 
 if (_currentHotel.Country == null) 
 errors.AppendLine("Выберите страну"); 
 
 if (errors.Length>0) 
 { 
 MessageBox.Show(errors.ToString());return; 
 } 
 
 if (_currentHotel.Id == 0) 
 Home.GetContext().Hotel.Add(_currentHotel); 
 try 
 { 
 Home.GetContext().SaveChanges(); 
 MessageBox.Show("Информация успешно сохранена"); 
 Manager.MainFrame.GoBack(); 
 
 } 
 catch (Exception ex) 
 { 
 MessageBox.Show(ex.Message.ToString()); 
 } 
 
 }
далее это для логический в текстовый(пишем в класс этой таблицы)
C#
1
2
3
4
5
6
7
8
<TextBlock Text="{Binding ActualText}"/> 
 public string ActualText 
{ 
 get 
 { 
 return (IsActual) ? "Актуален" : "Завершен"; 
 } 
}
А это текст для главной
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 public MainWindow() 
 { 
 InitializeComponent(); 
 MainFrame.Navigate(new TourPage()); 
 Manager.MainFrame = MainFrame; 
 } 
 
 private void btnBack_Click(object sender, RoutedEventArgs e) 
 { 
 Manager.MainFrame.GoBack(); 
 } 
 
 private void MainFrame_ContentRendered(object sender, EventArgs e) 
 { 
 if (MainFrame.CanGoBack) 
 { 
 btnBack.Visibility = Visibility.Visible; 
 } 
 else 
 btnBack.Visibility = Visibility.Hidden; 
 }
Для формы с удалением редактированием и добавлением
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
private void btnEdit_Click(object sender, RoutedEventArgs e) 
 { 
 Manager.MainFrame.Navigate(new AddEditPage((sender as Button).DataContext as Hotel)); 
 } 
 
 private void btnAdd_Click(object sender, RoutedEventArgs e) 
 { 
 Manager.MainFrame.Navigate(new AddEditPage(null)); 
 } 
 
 private void btnDelete_Click(object sender, RoutedEventArgs e) 
 { 
 var hotelsForRemoving = DGridHotels.SelectedItems.Cast<Hotel>().ToList(); 
 if (MessageBox.Show($" Вы точно хотите удалить следующие {hotelsForRemoving.Count()} элементов", "Внимание", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) 
 { 
 try { 
 Home.GetContext().SaveChanges(); 
 MessageBox.Show("Информация удалена"); 
 DGridHotels.ItemsSource = Home.GetContext().Hotel.ToList(); 
 } 
 catch (Exception ex) 
 { 
 MessageBox.Show(ex.Message.ToString()); 
 } 
 } 
 } 
 
 private void Page_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) 
 { 
 if (Visibility == Visibility.Visible) 
 { 
 Home.GetContext().ChangeTracker.Entries().ToList().ForEach(p => p.Reload()); 
 DGridHotels.ItemsSource = Home.GetContext().Hotel.ToList(); 
 } 
 }
Поиск информации реальное время
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
public TourPage() 
 { 
 InitializeComponent(); 
 var alltypes = Home.GetContext().Type.ToList(); //но тут в разметке DisplayMemberPath="Name" 
 alltypes.Insert(0, new Type 
 { 
 Name = "Все типы" 
 }); 
 ComboType.ItemsSource = alltypes; 
 CheckActual.IsChecked =true; 
 ComboType.SelectedIndex = 0; 
 UpdateTours(); 
 } 
 private void UpdateTours() 
 { 
 var currentTours = Home.GetContext().Tour.ToList(); 
 if (ComboType.SelectedIndex > 0) 
 currentTours = currentTours.Where(p => p.Type.Contains(ComboType.SelectedItem as Type)).ToList(); 
 
 currentTours = currentTours.Where(p => p.Name.ToLower().Contains(TBoxSearch.Text.ToLower())).ToList(); 
 if (CheckActual.IsChecked.Value) 
 currentTours = currentTours.Where(p => p.IsActual).ToList(); 
 LViewTours.ItemsSource = currentTours.OrderBy(p => p.TicketCount).ToList(); 
 
 } 
 
 private void TBoxSearch_TextChanged(object sender, TextChangedEventArgs e) 
 { 
 UpdateTours(); 
 }
А для данных это

Нормализация данных
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
   
 var filePath = File.ReadAllLines(@"C:\Users\Popka\Desktop\asd.txt");
var image = Directory.GetFiles(@"C:\Users\Popka\Downloads\drive-download-20201206T091339Z-001\Session 1-20201206T064102Z-001\Session 1");
 
using (Model1 d = new Model1())
{
 
foreach (var line in filePath)
{
var data = line.Split('\t');
 
User user = new User
{
name = data[1],
login = data[2],
password = data[3],
lastenter = DateTime.Parse(data[4]),
type = int.Parse(data[6])
};
 
d.User.Add(user);
d.SaveChanges();
 
string idService = data[5];
 
string i;
int a;
 
foreach(string s in idService.Split(','))
{
i = string.Concat(s.Where(x => int.TryParse(x.ToString(), out a)));
d.Service_User.Add(new Service_User { idUser = user.id, idService = int.Parse(i)});
}
 
d.SaveChanges();
 
}
}
и для таймштампа в ячеку формулу =(D2/86400)+ДАТА(1970;1;1)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2020, 07:27
Ответы с готовыми решениями:

трудно для меня. работа с классами
Помогите пожалуйста написать программу. Реализуйте класс, описывающий число вида a+b*e^(x) ,...

У меня Ноутбук на Win 8.1 и меня раздражают f1,2,3 и т.д, можно ли их включить для игрового режима
У меня эфки назначены как клавиши для повышения яркости включения автономного режима. Но можно ли...

ColorDialog для WPF. Копии всякого старья для WPF
Последние три дня мучился в поисках ColorDialog для WPF. Не стороннего заменителя, а максимально...

WPF async void fun() для событий контролла. (MapCOntrol.WPF)
Задача: Отмечаем чекбокс элементы и рисуем их на карте. При нажатии на кнопку выполняется...

0
08.12.2020, 07:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2020, 07:27
Помогаю со студенческими работами здесь

Библиотека элементов для реализации WPF MVVM Решений [WPF, Элд Хасп]
Решил собрать элементы используемые в темах в этом разделе. В библиотеку включаю элементы которые,...

Обсуждение темы "Библиотека элементов для реализации WPF MVVM Решений" [WPF, Элд Хасп]
Любое обсуждение, рекомендации, вопросы и т.п. по теме...

WPF команды и MVVM. Часть 2. Всплытие команд. Реализация команды для списка элементов [WPF, Элд Хасп]
Тема из цикла https://www.cyberforum.ru/wpf-silverlight/thread2384523.html На практике часто...

WPF работа с Excel
Я сделал форму WPF пытался считать даные с таблицы Excel по нажатию кнопки, приложение запускается...

WPF работа с сайтом
Доброго времени суток! У меня есть вопрос, на который я не смог найти ответа. Суть такова, как...

Работа с изображениями в WPF
Не совсем понимаю логику разработчиков. Нужен талчок ((( Для одной из домашек пишу пятнашки...


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

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