コード例 #1
0
        private void searchTextBox_TextChanged(object sender, EventArgs e)
        {
            TextBox textBox = sender as TextBox;

            //при уменьшении текста обновлять collection до начальной версии
            if (textBox.TextLength < Convert.ToInt32(textBox.Tag))
            {
                collection = tempCollect;
            }

            List <Prisoner> query = (from p in this.collection
                                     where p.FirstName.ToLowerInvariant().Contains(this.searchTextBox.Text.ToLowerInvariant()) ||
                                     p.NickName.ToLowerInvariant().Contains(this.searchTextBox.Text.ToLowerInvariant()) ||
                                     p.Profession.ToLowerInvariant().Contains(this.searchTextBox.Text.ToLowerInvariant()) ||
                                     p.Citizenship.ToLowerInvariant().Contains(this.searchTextBox.Text.ToLowerInvariant())
                                     select p).ToList();

            if (query.Count != 0)
            {
                BindingSourceDGV((PrisonerCollections)query);
            }
            else if (string.IsNullOrEmpty(searchTextBox.Text))
            {
                BindingSourceDGV(tempCollect);
            }
            else
            {
                MessageBox.Show("Сoncluded by the specified criteria it is not revealed");
                searchTextBox.Clear();
            }

            textBox.Tag = textBox.TextLength;
        }
コード例 #2
0
 /// <summary>
 /// Отрисовка фото в таблице.
 /// </summary>
 private void SetPhotoPrisoner(PrisonerCollections pC)
 {
     for (int i = 0; i < pC.Count; i++)
     {
         this.dataGrid.Rows[i].Cells[0].Value = new Bitmap((pC[i].Photos.firstPhoto));
     }
 }
コード例 #3
0
        /// <summary>
        /// Заполняем коллекцию данными, которые
        /// хранятся в файле и привязываем к таблице.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Load(object sender, EventArgs e)
        {
            DataBase.ReadFileVoid(ref collection);

            BindingSourceDGV(collection);

            //сохраняем начальное состояние коллекции
            tempCollect = collection;
            countOfPrisonerLabel.Tag = collection.Count;
        }
コード例 #4
0
        /// <summary>
        /// Добавление нового заключенного (вызов формы AddPrison).
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void addToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            AddPrison add = new AddPrison();

            collection = tempCollect;

            if (add.ShowDialog() == DialogResult.OK)
            {
                collection.Add(add.GetPrisoner());
                BindingSourceDGV(collection);
            }
            searchTextBox.Clear();
        }
コード例 #5
0
        /// <summary>
        /// Метод по привзяке текущего состояния коллекции к dataGridView.
        /// </summary>
        /// <param name="collect"></param>
        private void BindingSourceDGV(PrisonerCollections collect)
        {
            //если коллекция пустая, делаем ее недоступной
            if (collection.Count == 0)
            {
                dataGrid.Enabled = false;
            }
            else
            {
                dataGrid.Enabled = true;
            }

            if (collect != null)
            {
                collection = collect;

                this.bindingSource1.DataSource = new BindingSource(collection, null);

                SetPhotoPrisoner(collection);

                SetValueLabel();
            }
        }
コード例 #6
0
        /// <summary>
        /// Сортировка при нажатии на заголовок таблицы
        /// (т.к. таблица првязана к bindingsource, то использование встроеного sort невозможно)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGrid_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            List <Prisoner> newcollection = null;


            string headerTextProp = this.dataGrid.Columns[e.ColumnIndex].DataPropertyName;

            newcollection = this.collection.OrderBy(headerTextProp).ToList();

            if (newcollection != null)
            {
                //использование explisit оператора для конвертирования List<Prisoner> to PrisonerCollections
                PrisonerCollections rezultcollect = (PrisonerCollections)newcollection;

                BindingSourceDGV(rezultcollect);

                //проверка на равенство изначальной длины коллекции с длиной кол. в результате запроса
                //если != то,  перезаписывания tempCollect не происходит
                if ((int)countOfPrisonerLabel.Tag == rezultcollect.Count)
                {
                    tempCollect = rezultcollect;
                }
            }
        }
コード例 #7
0
 /// <summary>
 /// При закрытии программы сохраняем состояние коллеции.
 /// </summary>
 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
 {
     collection = tempCollect;
     DataBase.WriteToFile(ref collection);
 }
コード例 #8
0
        private void ShowInfo(PrisonerCollections collection, int index)
        {
            Info info = new Info(collection[index]);

            info.ShowDialog();
        }