Filipenya_Katerina / Отчёт 3
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
Учреждение Образования
«Белорусский Государственный Университет Информатики и Радиоэлектроники»
кафедра информатики
Инструменты и средства программирования
Отчёт по лабораторной работе №3
Выполнила: студентка гр. 152002
Филипеня Екатерина Дмитриевна
Проверил:
Тычко Дмитрий Николаевич
Минск 2013
Задание
1. В Проекте необходимо реализовать привязку данных к элементам интерфейса.
2. Создать оригинальный визуальный стиль окна и некоторых элементов управления.
3. Разработать несколько (минимум 3) шаблонов для элементов управления и данных.
4. Реализовать в проекте элементы 2D-графики (можно представить график или диаграмму, построенную по неким данным проекта; нарисовать логотип или векторный рисунок).
Листинг
namespace Second_Lab
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private List<Film> films;
private FilmComponents filmcom;
private GenreComponents genrecom;
private DirectorComponents dircom;
public MainWindow()
{
InitializeComponent();
dataGridCatalogue.CanUserAddRows = false;
filmcom = new FilmComponents();
genrecom = new GenreComponents();
films = new List<Film>();
dircom = new DirectorComponents();
}
private void SearchWithName(string name)
{
dataGridCatalogue.ItemsSource = null;
films.Clear();
foreach (var film in filmcom.Search(name))
{
films.Add(film);
}
dataGridCatalogue.ItemsSource = films;
}
private void SearchWithGenre(Guid id)
{
dataGridCatalogue.ItemsSource = null;
films.Clear();
foreach (var film in filmcom.ChoiceByGenre(genrecom.Read(id)))
{
films.Add(film);
}
dataGridCatalogue.ItemsSource = films;
}
private void SearchWithDirector(Guid id)
{
dataGridCatalogue.ItemsSource = null;
films.Clear();
foreach (var film in filmcom.ChoiceByDirector(dircom.Read(id)))
{
films.Add(film);
}
dataGridCatalogue.ItemsSource = films;
}
private void Updatetable()
{
dataGridCatalogue.ItemsSource = null;
films.Clear();
dataGridCatalogue.ItemsSource = filmcom.ReadAll();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Updatetable();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
SearchNameWindow namewind = new SearchNameWindow();
namewind.Show();
namewind.BtnClicked += new SearchNameWindow.GetFilmName(SearchWithName);
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
SearchGenreWindow genrewind = new SearchGenreWindow();
genrewind.Show();
genrewind.BtnClicked += new SearchGenreWindow.GetGenreNum(SearchWithGenre);
}
private void Button_Click_3(object sender, RoutedEventArgs e)
{
SearchDirectorWindow directorwind = new SearchDirectorWindow();
directorwind.Show();
directorwind.BtnClicked += new SearchDirectorWindow.GetDirectorName(SearchWithDirector);
}
private void Button_Click_4(object sender, RoutedEventArgs e)
{
dataGridCatalogue.ItemsSource = null;
films.Clear();
foreach (var film in filmcom.Rating())
{
films.Add(film);
}
dataGridCatalogue.ItemsSource = films;
}
private void Button_Click_5(object sender, RoutedEventArgs e)
{
dataGridCatalogue.ItemsSource = null;
films.Clear();
foreach (var film in filmcom.TopFilms())
{
films.Add(film);
}
dataGridCatalogue.ItemsSource = films;
}
private void Button_Click_6(object sender, RoutedEventArgs e)
{
AddWindow addwind = new AddWindow();
addwind.Show();
addwind.BtnClicked += new AddWindow.UpdateTable(Updatetable);
}
private void Button_Click_7(object sender, RoutedEventArgs e)
{
DeleteWindow deletewind = new DeleteWindow();
deletewind.Show();
deletewind.BtnClicked += new DeleteWindow.UpdateTable(Updatetable);
}
private void Button_Click_8(object sender, RoutedEventArgs e)
{
UpdateWindow updatewind = new UpdateWindow();
updatewind.Show();
updatewind.BtnClicked += new UpdateWindow.UpdateTable(Updatetable);
}
}
}
namespace Second_Lab
{
/// <summary>
/// Логика взаимодействия для UpdateWindow.xaml
/// </summary>
public partial class UpdateWindow : Window
{
private FilmComponents filmcom;
public delegate void UpdateTable();
public event UpdateTable BtnClicked;
public UpdateWindow()
{
InitializeComponent();
filmcom = new FilmComponents();
lbname.ItemsSource = filmcom.ReadAll();
}
private void btnsavechanges_Click(object sender, RoutedEventArgs e)
{
filmcom.Update(((Film)lbname.SelectedItem)._ID, (Film)lbname.SelectedItem);
BtnClicked();
this.Close();
}
}
}
namespace Second_Lab
{
/// <summary>
/// Логика взаимодействия для AddWindow.xaml
/// </summary>
public partial class AddWindow : Window
{
private FilmComponents filmcom;
public delegate void UpdateTable();
public event UpdateTable BtnClicked;
public AddWindow()
{
InitializeComponent();
filmcom = new FilmComponents();
}
private void btnadd_Click(object sender, RoutedEventArgs e)
{
filmcom.Create((Film)this.Resources["NewFilm"]);
BtnClicked();
this.Close();
}
}
}
namespace Second_Lab
{
/// <summary>
/// Логика взаимодействия для DeleteWindow.xaml
/// </summary>
public partial class DeleteWindow : Window
{
private FilmComponents filmcom;
public delegate void UpdateTable();
public event UpdateTable BtnClicked;
public DeleteWindow()
{
InitializeComponent();
filmcom = new FilmComponents();
lbname.ItemsSource = filmcom.ReadAll();
}
private void btndelete_Click(object sender, RoutedEventArgs e)
{
filmcom.Delete(((Film)lbname.SelectedItem)._ID);
BtnClicked();
this.Close();
}
}
}
namespace Second_Lab
{
/// <summary>
/// Логика взаимодействия для SearchNameWindow.xaml
/// </summary>
public partial class SearchNameWindow : Window
{
public delegate void GetFilmName(string name);
public event GetFilmName BtnClicked;
public SearchNameWindow()
{
InitializeComponent();
}
private void buttonfind_Click(object sender, RoutedEventArgs e)
{
if (textBoxfind.Text != null)
{
BtnClicked(textBoxfind.Text);
}
this.Close();
}
}
}
namespace Second_Lab
{
/// <summary>
/// Логика взаимодействия для SearchGenreWindow.xaml
/// </summary>
public partial class SearchGenreWindow : Window
{
public delegate void GetGenreNum(Guid id);
public event GetGenreNum BtnClicked;
private GenreComponents genrecom { get; set; }
public SearchGenreWindow()
{
InitializeComponent();
genrecom = new GenreComponents();
listBoxgenre.ItemsSource = genrecom.ReadAll();
}
private void buttonfind_Click(object sender, RoutedEventArgs e)
{
BtnClicked(((Genre)listBoxgenre.SelectedItem)._ID);
this.Close();
}
}
}
namespace Second_Lab
{
/// <summary>
/// Логика взаимодействия для SearchDirectorWindow.xaml
/// </summary>
public partial class SearchDirectorWindow : Window
{
public delegate void GetDirectorName(Guid id);
public event GetDirectorName BtnClicked;
private DirectorComponents directorcom;
public SearchDirectorWindow()
{
InitializeComponent();
directorcom = new DirectorComponents();
listBoxdirector.ItemsSource = directorcom.ReadAll();
}
private void buttonfind_Click(object sender, RoutedEventArgs e)
{
BtnClicked(((Director)listBoxdirector.SelectedItem)._ID);
this.Close();
}
}
}