■ DataGridControl 엘리먼트 : 선택 항목 삭제하기
------------------------------------------------------------------------------------------------------------------------
▶ MainApplication.xaml
<Application x:Class="TestProject.MainApplication" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="MainWindow.xaml"> </Application>
|
▶ MainApplication.xaml.cs
using System; using System.Data; using System.Data.OleDb; using System.Windows;
namespace TestProject { /// <summary> /// 메인 애플리케이션 /// </summary> public partial class MainApplication : Application { //////////////////////////////////////////////////////////////////////////////////////////////////// Field ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary> /// 주문 테이블 /// </summary> private static DataTable _orderTable;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Public
#region 주문 테이블 - OrderTable
/// <summary> /// 주문 테이블 /// </summary> public static DataTable OrderTable { get { return _orderTable; } }
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Static
#region 생성자 - MainApplication()
/// <summary> /// 생성자 /// </summary> static MainApplication() { DataSet dataSet = new DataSet();
string filePath = @"c:\DS.Core\DS.Test.SampleDatabase\nwind.mdb"; string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", filePath); OleDbConnection oleDbConnection = new OleDbConnection(connectionString); OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter();
oleDbDataAdapter.SelectCommand = new OleDbCommand("SELECT * FROM Orders", oleDbConnection);
oleDbDataAdapter.Fill(dataSet, "Orders");
_orderTable = dataSet.Tables["Orders"]; }
#endregion } }
|
▶ MainWindow.xaml
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid" x:Class="TestProject.MainWindow" Width="600" Height="450" Title="선택 항목 삭제하기"> <Window.Resources> <xcdg:DataGridCollectionViewSource x:Key="DataGridCollectionViewSourceKey" Source="{Binding Source={x:Static Application.Current}, Path=OrderTable}" /> </Window.Resources> <Grid> <xcdg:DataGridControl x:Name="dataGridControl" ItemsSource="{Binding Source={StaticResource DataGridCollectionViewSourceKey}}" IsDeleteCommandEnabled="True" DeletingSelectedItemError="dataGridControl_DeletingSelectedItemError" DeletingSelectedItems="dataGridControl_DeletingSelectedItems" /> </Grid> </Window>
|
▶ MainWindow.xaml.cs
using System.Windows;
using Xceed.Wpf.DataGrid;
namespace TestProject { /// <summary> /// 메인 윈도우 /// </summary> public partial class MainWindow : Window { //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainWindow()
/// <summary> /// 생성자 /// </summary> public MainWindow() { InitializeComponent(); }
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Private //////////////////////////////////////////////////////////////////////////////// Event
#region 데이터 그리드 컨트롤 선택 항목 삭제 에러시 처리하기 - dataGridControl_DeletingSelectedItemError(sender, e)
/// <summary> /// 데이터 그리드 컨트롤 선택 항목 삭제 에러시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void dataGridControl_DeletingSelectedItemError(object sender, DeletingSelectedItemErrorRoutedEventArgs e) { MessageBoxResult result = MessageBox.Show ( "항목 삭제시 다음 에러가 발생했습니다 : " + e.Exception.Message + "\n작업을 계속하시겠습니까?", "에러", MessageBoxButton.YesNoCancel );
if(result == MessageBoxResult.Yes) { if(this.dataGridControl.IsBeingEdited) { try { this.dataGridControl.CancelEdit();
e.Action = DeletingSelectedItemErrorAction.Retry; } catch { e.Action = DeletingSelectedItemErrorAction.Skip; } } } else if(result == MessageBoxResult.Cancel) { e.Action = DeletingSelectedItemErrorAction.Abort; } }
#endregion
#region 데이터 그리드 컨트롤 선택 항목 삭제시 처리하기 - dataGridControl_DeletingSelectedItems(sender, e)
/// <summary> /// 데이터 그리드 컨트롤 선택 항목 삭제시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void dataGridControl_DeletingSelectedItems(object sender, CancelRoutedEventArgs e) { MessageBoxResult result = MessageBox.Show("선택 행을 삭제하시겠습니까?", "확인", MessageBoxButton.YesNo);
if(result == MessageBoxResult.No) { e.Cancel = true; } }
#endregion } }
|
------------------------------------------------------------------------------------------------------------------------
※ MS Access 파일 처리를 위해 플랫폼 대상을 x86으로 컴파일해야 한다.
'XCeed > WPF' 카테고리의 다른 글
[XCEED/WPF] DataGridControl 엘리먼트 : 현재 셀인 경우 편집 모드 들어가기 (0) | 2015.09.06 |
---|---|
[XCEED/WPF] DataGridControl 엘리먼트 : 언바운드 데이터 제공하기 (0) | 2015.09.06 |
[XCEED/WPF] DataGridControl 엘리먼트 : 컬럼 설정하기 (0) | 2015.09.06 |
[XCEED/WPF] DataGridControl 엘리먼트 : 추가 행 초기화 하기 (0) | 2015.09.06 |
[XCEED/WPF] DataGridControl 엘리먼트 : 추가 프로세스 수동 처리하기 (0) | 2015.09.05 |
[XCEED/WPF] DataGridControl 엘리먼트 : 선택 항목 삭제하기 (0) | 2015.09.05 |
[XCEED/WPF] DataGridControl 엘리먼트 : 그룹핑, 정렬 사용하기 (0) | 2015.09.05 |
[XCEED/WPF] DataGridControl 엘리먼트 : 현재 항목에서 값 구하기 (0) | 2015.09.05 |
[XCEED/WPF] DataGridControl 엘리먼트 : 배열 바인딩 하기 (0) | 2015.09.05 |
[XCEED/WPF] DataGridControl 엘리먼트 : 데이터 테이블 바인딩 하기 (0) | 2015.09.05 |
[XCEED/WPF] DataGridControl 엘리먼트 사용하기 (0) | 2015.08.24 |
댓글을 달아 주세요