{
bindingSource1.DataSource = DataXML.Tables[0];
this.bindingNavigator1.BindingSource = bindingSource1;
dataGridView1.DataSource = bindingSource1;
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
}
}
}
Разработка приложения КАТАЛОГ ТОВАРОВ. Рассмотрим пример разработки приложения, отображающего информацию о каталоге товаров. Хранилищем данных о товарах является файл с именем catalogue.xml, содержимое которого представлено в листинге 8.9.
В файле хранятся данные о коде товара, наименовании, цене, фотография товара и его краткое описание. Приложение позволяет просматривать каталог товаров, включая их изображения.
Листинг 8.9. Файл catalogue.xml
<?xml version="1.0" encoding="utf-8"?>
<catalogue>
<unit>
<uCode>003782</uCode>
<uTitle>Чайник</uTitle>
<uMemo>Чайник из нержавеющей стали. Объем: 1,5 л.</uMemo>
<uPrice>670,50</uPrice>
<uImage>i001.jpg</uImage>
</unit>
<unit>
<uCode>012345</uCode>
<uTitle>Чашка с блюдцем</uTitle>
<uMemo>Чашка с блюдцем. Керамика. Цвет: синий,
зеленый, красный.</uMemo>
<uPrice>99,00</uPrice>
<uImage>i002.jpg</uImage>
</unit>
<unit>
<uCode>01524</uCode>
<uTitle>Комплект столовой мебели</uTitle>
<uMemo>Комплект столовой мебели. Стол + 4 стула.
Материал: массив клена.</uMemo>
<uPrice>3900,00</uPrice>
<uImage>i003.jpg</uImage>
</unit>
<unit>
<uCode>01555</uCode>
<uTitle>Лампа настольная</uTitle>
<uMemo>Лампа настольная. 40 Вт. Материал:
керамика.</uMemo>
<uPrice>549,50</uPrice>
<uImage>i006.jpg</uImage>
</unit>
<unit>
<uCode>01325</uCode>
<uTitle>Миска</uTitle>
<uMemo>Миска керамическая. Цвет: коричневый+
бежевый, голубой+белый.</uMemo>
<uPrice>49,50</uPrice>
<uImage>i012.jpg</uImage>
</unit>
<unit>
<uCode>01197</uCode>
<uTitle>Люстра</uTitle>
<uMemo>Люстра. 40 Вт. Хромированное
покрытие.</uMemo>
<uPrice>1549,50</uPrice>
<uImage>i011.jpg</uImage>
</unit>
</catalogue>
Для проектирования интерфейса приложения на форме следует разместить элементы управления, как показано на рис. 8.9.
|
|
|
|
|
|
|
|

Рис. 8.9. Размещение элементов управления на форме
при проектировании приложения Каталог товаров
Код приложения представлен в листинге 8.10.
Листинг 8.10. Код приложения Каталог товаров
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Xml;
Namespace WindowsApplication1
{
Public partial class Form1: Form
{
string file_name = "catalogue.xml";
XmlTextReader xml_read;
// Переменная для хранения имени файла
// Объект DataXML класса DataSet представляет собой расположенный
// в памяти кэш данных, загружаемых из источника данных
DataSet DataXML;
DataTable MyDatatable = null;
Public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
DataXML = new DataSet();
FileStream fs = new FileStream(file_name, FileMode.Open);
xml_read = new XmlTextReader(fs);
DataXML.ReadXml(xml_read, XmlReadMode.InferSchema);
MyDatatable = DataXML.Tables[0];
bindingSource1.DataMember = DataXML.Tables[0].ToString();
bindingSource1.DataSource = DataXML.Tables[0];
this.bindingNavigator1.BindingSource = bindingSource1;
dataGridView1.DataSource = bindingSource1;
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
dataGridView1.Columns[0].Width = 40;
dataGridView1.Columns[0].HeaderText = "Код";
dataGridView1.Columns[1].Width = 100;
dataGridView1.Columns[1].HeaderText = "Наименование";
dataGridView1.Columns[2].Width =250;
dataGridView1.Columns[2].HeaderText = "Описание";
dataGridView1.Columns[3].Width = 55;
dataGridView1.Columns[3].HeaderText = "Цена";
fs.Close();
}
// Щелчок в ячейке dataGridView1
Private void dataGridView1_CellContentClick(object sender, DataGrid
ViewCellEventArgs e)
{
textBox2.Text =
DataXML.Tables[0].Rows[e.RowIndex][2].ToString();
TextBox1.Text
RowIndex][1].ToString();
textBox3.Text =
DataXML.Tables[0].Rows[e.RowIndex][3].ToString();
textBox4.Text =
DataXML.Tables[0].Rows[e.RowIndex][0].ToString();
textBox5.Text =
DataXML.Tables[0].Rows[e.RowIndex][4].ToString();
pictureBox1.Image = new Bitmap(textBox5.Text); }
// Щелчок в левом поле строки dataGridView1