/// <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); }
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(); }