Beispiel #1
0
 //Clears the UI collecting user data for parts and labor .
 private void ClearOther()
 {
     PartsCharge.Clear();
     LabourHours.Clear();
 }
        public TabWithItems(int tabid, int projectid)
        {
            InitializeComponent();
            WorkCharge.ValueChanged = UpdateAnotherCharge;
            WorkCharge.ShowInfo     = () =>
            {
                int count = 0;
                foreach (var item in TabRecords)
                {
                    count += item.Price;
                }

                if (workcharge != 0)
                {
                    count = (int)Math.Floor((double)count / workcharge);
                }
                else
                {
                    count = 0;
                }

                Interaction.MsgBox("Стоимость работ составит " + count);
            };
            PartsCharge.ValueChanged = UpdateAnotherCharge;
            PartsCharge.ShowInfo     = () =>
            {
                int count = 0;
                foreach (var item in TabRecords)
                {
                    count += item.Price;
                }

                if (partscharge != 0)
                {
                    count = (int)Math.Floor((double)count / partscharge);
                }
                else
                {
                    count = 0;
                }

                Interaction.MsgBox("Стоимость расходных материалов составит " + count);
            };


            TabId     = tabid;
            ProjectId = projectid;

            currentproj = App.PC.Projects.Where(p => p.Id == ProjectId).First();
            currenttab  = currentproj.Tabs.Where(t => t.Id == TabId).First();

            TabTitle.Content = currenttab.Name;

            foreach (var item in currenttab.TabRecords)
            {
                TabRecords.Add(item);
                item.PropertyChanged += UpdateTabRecord;
            }

            TabRecords.CollectionChanged += UpdateTabRecords;

            RecordGrid.ItemsSource = TabRecords;

            if (currenttab.WorkCharge != 0)
            {
                WorkCharge.LoadData(currenttab.WorkCharge);
            }

            if (currenttab.PartsCharge != 0)
            {
                PartsCharge.LoadData(currenttab.PartsCharge);
            }

            workcharge  = currenttab.WorkCharge;
            partscharge = currenttab.PartsCharge;

            UpdateCount();

            //По умолчанию изменения не сохранены, так как что-то рандомно начинает их перебивать в GUI
            //Затем вызывается UpdateTabRecord, событие, вызываемое при изменении поля записи
            //Что красит некоторые таблицы в красный
            //Пустые таблицы остаются синими
            IsChangesSaved = false;
        }
Beispiel #3
0
 private void PartsCharge_GotFocus(object sender, RoutedEventArgs e)
 {
     PartsCharge.Clear();
 }