Пример #1
0
        private void CheckStatus(object sender, EventArgs e)
        {
            StringBuilder sqlStr = new StringBuilder();

            sqlStr.Append("select * from PC_XTPJ_REPORT");
            DataTable dataTable = new DataTable();

            dataTable = DbHelperOleDb.Query(sqlStr.ToString()).Tables[0];
            for (int i = 0; i < DataGrid1.Items.Count; i++)
            {
                if (!DataGrid1.Items[i].GetType().Equals(typeof(DataRowView)))
                {
                    continue;
                }
                DataRowView item     = DataGrid1.Items[i] as DataRowView;
                DataRow[]   dataRows = dataTable.Select("MC='" + item.Row.ItemArray[0].ToString() + "'");
                if (dataRows.Length > 0 && dataRows[0][1] != null)
                {
                    if (DataGrid1.Columns.Count == 0)
                    {
                        break;
                    }
                    DataGridTemplateColumn templeColumn = DataGrid1.Columns[DataGrid1.Columns.Count - 1] as DataGridTemplateColumn;
                    FrameworkElement       element      = templeColumn.GetCellContent(DataGrid1.Items[i]);
                    Button currentButton = VisualTreeHelper.GetChild(element, 0) as Button;
                    Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, new StatusDelegate(ChangeStatus), currentButton);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 线路选项列更改事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SerialPortData_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
        {
            int indexs = SerialPortData.SelectedIndex;
            int index  = SerialPortData.CurrentCell.Column.DisplayIndex;

            if (!index.Equals(0))
            {
                this.SerialPortData.BeginEdit();

                DataGridTemplateColumn templeColumn = SerialPortData.Columns[index] as DataGridTemplateColumn;
                if (templeColumn == null)
                {
                    return;
                }

                object           item    = SerialPortData.CurrentCell.Item;
                FrameworkElement element = templeColumn.GetCellContent(item);
                if (element != null)
                {
                    ComboBox expander = templeColumn.CellEditingTemplate.FindName("listT", element) as ComboBox;
                    if (expander != null)
                    {
                        expander.IsDropDownOpen = true;
                    }
                }
            }
        }
Пример #3
0
        protected override void OnLoadingRow(DataGridRowEventArgs e)
        {
            base.OnLoadingRow(e);

            object           dataContext = e.Row.DataContext;
            FrameworkElement element     = _selectColumn.GetCellContent(e.Row);

            element.DataContext = GetMarkObject(dataContext);
        }
Пример #4
0
        public static void SetCellTextBoxFocus(this DataGrid dataGrid, string name, int Col)
        {
            object itemOld = dataGrid.CurrentCell.Item;
            DataGridTemplateColumn templeColumnOld = dataGrid.Columns[Col] as DataGridTemplateColumn;
            FrameworkElement       elementOld      = templeColumnOld.GetCellContent(itemOld);
            object objOld = templeColumnOld.CellEditingTemplate.FindName(name, elementOld);

            if (objOld != null)
            {
                TextBox textOld = objOld as TextBox;
                textOld.Focus();
            }
        }
Пример #5
0
        public static void SetCellTextBlock(this DataGrid dataGrid, string name, int Col, string value)
        {
            object itemOld = dataGrid.CurrentCell.Item;
            DataGridTemplateColumn templeColumnOld = dataGrid.Columns[Col] as DataGridTemplateColumn;
            FrameworkElement       elementOld      = templeColumnOld.GetCellContent(itemOld);
            object objOld = templeColumnOld.CellTemplate.FindName(name, elementOld);

            if (objOld != null)
            {
                TextBlock textOld = objOld as TextBlock;
                textOld.Text = value;
            }
        }
Пример #6
0
        public static string GetCellTextBox(this DataGrid dataGrid, string name, int Col)
        {
            string oldValue = "";
            object itemOld  = dataGrid.CurrentCell.Item;
            DataGridTemplateColumn templeColumnOld = dataGrid.Columns[Col] as DataGridTemplateColumn;
            FrameworkElement       elementOld      = templeColumnOld.GetCellContent(itemOld);
            object objOld = templeColumnOld.CellEditingTemplate.FindName(name, elementOld);

            if (objOld != null)
            {
                TextBox textOld = objOld as TextBox;
                oldValue = textOld.Text;
            }
            return(oldValue);
        }
Пример #7
0
        public static void SetCellTextBoxAndFocus(this DataGrid dataGrid, string name, int Col, string value)
        {
            object itemOld = dataGrid.CurrentCell.Item;
            DataGridTemplateColumn templeColumnOld = dataGrid.Columns[Col] as DataGridTemplateColumn;
            FrameworkElement       elementOld      = templeColumnOld.GetCellContent(itemOld);
            object objOld = templeColumnOld.CellEditingTemplate.FindName(name, elementOld);

            if (objOld != null)
            {
                TextBox textOld = objOld as TextBox;
                textOld.Text = value;
                int i = 0;
                while (!textOld.Focus() || i > 100)
                {
                    i++;
                }
            }
        }
Пример #8
0
        /// <summary>
        /// 取消事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnCancel_Click(object sender, RoutedEventArgs e)
        {
            DataGridTemplateColumn column  = this.grdList.Columns[0] as DataGridTemplateColumn;
            FrameworkElement       element = column.GetCellContent(this.grdList.Items[this.grdList.SelectedIndex]);
            var    bar         = column.CellTemplate.FindName("progressCtl", element) as ProgressBar;
            var    btnCancel   = sender as Button;
            Button btnDownload = column.CellTemplate.FindName("btnDownload", element) as Button;
            var    lblCancel   = column.CellTemplate.FindName("lblCancel", element) as Label;

            var index = this.grdList.SelectedIndex;

            Task.Factory.StartNew(() =>
            {
                this.Dispatcher.Invoke(new Action(() =>
                {
                    btnCancel.Visibility = Visibility.Hidden;
                    lblCancel.Visibility = Visibility.Visible;
                    bar.Visibility       = Visibility.Hidden;
                }));

                if (DicMap.Keys.Contains(index))
                {
                    Thread td = DicMap[index];
                    DicMap.Remove(index);
                    DicIsStop[index] = true;
                    Thread.Sleep(500);
                    td.Abort();
                }

                this.Dispatcher.Invoke(new Action(() =>
                {
                    lblCancel.Visibility   = Visibility.Hidden;
                    btnDownload.Visibility = Visibility.Visible;
                    btnDownload.IsEnabled  = true;
                }));
            });
        }
Пример #9
0
        private void BtnDownload_Click(object sender, RoutedEventArgs e)
        {
            DataGridTemplateColumn column = this.grdList.Columns[0] as DataGridTemplateColumn;
            //获取指定的行与列相交位置的单元格
            FrameworkElement element = column.GetCellContent(this.grdList.Items[this.grdList.SelectedIndex]);
            var    bar         = column.CellTemplate.FindName("progressCtl", element) as ProgressBar;
            var    btnShow     = column.CellTemplate.FindName("btnShow", element) as Button;
            var    btnDownload = sender as Button;
            Border b           = btnDownload.Template.FindName("ContentContainer", btnDownload) as Border;
            Button btnCancel   = column.CellTemplate.FindName("btnCancel", element) as Button;

            string filePath = btnShow.Tag != null?btnShow.Tag.ToString() : string.Empty;

            if (string.IsNullOrEmpty(filePath))
            {
                var m_Dialog = new System.Windows.Forms.FolderBrowserDialog();
                System.Windows.Forms.DialogResult result = m_Dialog.ShowDialog();

                if (result == System.Windows.Forms.DialogResult.Cancel)
                {
                    return;
                }
                filePath = m_Dialog.SelectedPath.Trim();
            }

            var index   = this.grdList.SelectedIndex;
            var rowData = AppList[index];

            (sender as Button).IsEnabled = false;

            string downFoldar = filePath;

            btnShow.Tag = filePath;
            if (!Directory.Exists(downFoldar))
            {
                Directory.CreateDirectory(downFoldar);
            }

            Thread td = new Thread(() =>
            {
                DownloadHelper downLoadHelper = null;
                try
                {
                    this.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        btnCancel.Visibility   = Visibility.Visible;
                        btnDownload.Visibility = Visibility.Hidden;
                    }));

                    string serverFileUrl = rowData.DownUrl;
                    downLoadHelper       = new DownloadHelper(serverFileUrl, downFoldar);
                    downLoadHelper.GetTotalSize();
                    this.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        bar.Maximum = downLoadHelper.TotalSize;
                    }));

                    string downLoadStep = ConfigHelper.GetAppSettingValue("DownloadStep");

                    downLoadHelper.Step = !string.IsNullOrEmpty(downLoadStep) ? Convert.ToInt32(downLoadStep) : 102400;

                    while (!downLoadHelper.IsFinished && !DicIsStop[index])
                    {
                        downLoadHelper.Download();
                        this.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            bar.Visibility = Visibility.Visible;
                            bar.Value      = downLoadHelper.CurrentSize;
                        }));
                    }

                    if (downLoadHelper.IsFinished)
                    {
                        string localFileName = downLoadHelper.FilePath;
                        string localMd5      = CommonHelper.GetMD5HashFromFile(localFileName);

                        if (localMd5 == rowData.MD5)
                        {
                            this.Dispatcher.BeginInvoke(new Action(() =>
                            {
                                this.Dispatcher.BeginInvoke(new Action(() =>
                                {
                                    btnDownload.Visibility = Visibility.Hidden;
                                    btnShow.Visibility     = Visibility.Visible;
                                    btnCancel.Visibility   = Visibility.Hidden;
                                }));
                            }));
                        }
                        else
                        {
                            File.Delete(localFileName);
                            this.Dispatcher.BeginInvoke(new Action(() =>
                            {
                                MessageBoxEx.Show(this, string.Format(Message.DownFail, rowData.AppName), Message.Tips, MessageBoxExButtons.OK, MessageBoxExIcon.Error);

                                btnDownload.Visibility = Visibility.Visible;
                                b.Background           = new ImageBrush
                                {
                                    ImageSource = new BitmapImage(new Uri(PRO_ReceiptsInvMgr.Resources.Common.IcoDownRestart))
                                };
                                btnDownload.IsEnabled = true;
                                btnShow.Visibility    = Visibility.Hidden;
                                btnCancel.Visibility  = Visibility.Hidden;
                                bar.Visibility        = Visibility.Hidden;
                            }));
                        }
                    }
                }
                catch (Exception ex)
                {
                    if (!(ex is System.Threading.ThreadAbortException))
                    {
                        string errMsg = PRO_ReceiptsInvMgr.Resources.Message.NetworkError;

                        this.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            MessageBoxEx.Show(this, errMsg, Message.Tips, MessageBoxExButtons.OK, MessageBoxExIcon.Error);

                            btnCancel.Visibility   = Visibility.Hidden;
                            bar.Visibility         = Visibility.Hidden;
                            btnDownload.Visibility = Visibility.Visible;
                            btnDownload.IsEnabled  = true;
                        }));
                        Logging.Log4NetHelper.Error(typeof(AppDownload), string.Format(PRO_ReceiptsInvMgr.Resources.Message.DownAppFail, rowData.AppName) + ex.Message + System.Environment.NewLine + ex.StackTrace);
                    }
                }
                finally
                {
                    if (DicMap.Keys.Contains(index))
                    {
                        DicMap.Remove(index);
                    }
                    if (downLoadHelper != null)
                    {
                        downLoadHelper.Dispose();
                    }
                }
            });

            td.IsBackground = true;
            td.Start();

            DicMap.Add(index, td);

            if (!DicIsStop.ContainsKey(index))
            {
                DicIsStop.Add(index, false);
            }
            else
            {
                DicIsStop[index] = false;
            }
        }