Exemplo n.º 1
0
        /// <summary>
        /// 将SelectedItem滚动为第一行
        /// </summary>
        /// <param name="dataGrid">目标DagaGrid</param>
        /// <param name="selectedItem">选中项</param>
        public static void SetSelectedItemFirstRow(object dataGrid, object selectedItem)
        {
            //若目标datagrid为空,抛出异常
            if (dataGrid == null)
            {
                throw new ArgumentNullException("目标无" + dataGrid + "无法转换为DataGrid");
            }
            //获取目标DataGrid,为空则抛出异常
            System.Windows.Controls.DataGrid dg = dataGrid as System.Windows.Controls.DataGrid;
            if (dg == null)
            {
                throw new ArgumentNullException("目标无" + dataGrid + "无法转换为DataGrid");
            }
            //数据源为空则返回
            if (dg.Items == null || dg.Items.Count < 1)
            {
                return;
            }

            //首先滚动为末行
            dg.SelectedItem  = dg.Items[dg.Items.Count - 1];
            dg.CurrentColumn = dg.Columns[0];
            dg.ScrollIntoView(dg.SelectedItem, dg.CurrentColumn);

            //获取焦点,滚动为目标行
            dg.Focus();
            dg.SelectedItem  = selectedItem;
            dg.CurrentColumn = dg.Columns[0];
            dg.ScrollIntoView(dg.SelectedItem, dg.CurrentColumn);
        }
Exemplo n.º 2
0
        public static void SaveAs(DataGrid XAMLDataGrid)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            string         saveFilePath   = string.Empty;

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                saveFilePath = saveFileDialog.FileName;
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();

                Workbook  workbook = excel.Workbooks.Add(System.Reflection.Missing.Value);
                Worksheet sheet    = (Worksheet)workbook.Sheets[1];

                //Headers------------------------------------------
                sheet.Cells[1, 1] = XAMLDataGrid.Columns[0].Header;
                sheet.Cells[1, 2] = XAMLDataGrid.Columns[1].Header;
                sheet.Cells[1, 3] = XAMLDataGrid.Columns[2].Header;
                //-------------------------------------------------

                for (int i = 0; i < XAMLDataGrid.Items.Count; i++)
                {
                    Player temp = (Player)XAMLDataGrid.Items.GetItemAt(i);

                    sheet.Cells[i + 2, 1] = temp.PlayerID;
                    sheet.Cells[i + 2, 2] = temp.PlayerName;
                    sheet.Cells[i + 2, 3] = temp.PlayerPoint;
                }

                workbook.SaveAs(saveFilePath);
                workbook.Close();
            }

            System.Windows.Forms.MessageBox.Show("Mentve!");
            XAMLDataGrid.Focus();
        }