728x90
728x170
▶ 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>
728x90
▶ 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
}
}
300x250
▶ 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>
<DockPanel>
<StackPanel DockPanel.Dock="Top">
<CheckBox x:Name="handledByRowCheckBox"
IsChecked="False"
Content="행 처리 이벤트" />
<CheckBox x:Name="cancelBeginEditCheckBox"
IsChecked="False"
Content="BeginEdit 이벤트 취소하기" />
</StackPanel>
<xcdg:DataGridControl x:Name="dataGridControl"
ItemsSource="{Binding Source={StaticResource DataGridCollectionViewSourceKey}}"
xcdg:Cell.EditBeginning="cell_EditBeginning"
xcdg:Cell.EditBegun="cell_EditBegun" />
</DockPanel>
</Grid>
</Window>
▶ MainWindow.xaml.cs
using System.Diagnostics;
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 셀 편집 시작시 처리하기 - cell_EditBeginning(sender, e)
/// <summary>
/// 셀 편집 시작시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void cell_EditBeginning(object sender, CancelRoutedEventArgs e)
{
e.Cancel = (this.cancelBeginEditCheckBox.IsChecked == true);
e.Handled = (this.handledByRowCheckBox.IsChecked == true);
Debug.WriteLine(sender + " : EditBeginning");
}
#endregion
#region 셀 편집 시작후 처리하기 - cell_EditBegun(sender, e)
/// <summary>
/// 셀 편집 시작후 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
public void cell_EditBegun(object sender, RoutedEventArgs e)
{
e.Handled = (this.handledByRowCheckBox.IsChecked ?? true);
Debug.WriteLine(sender + " : EditBegun");
}
#endregion
}
}
※ MS Access 파일 처리를 위해 플랫폼 대상을 x86으로 컴파일해야 한다.
728x90
그리드형(광고전용)
'XCeed > WPF' 카테고리의 다른 글
[XCEED/WPF] 컨텐트 ID로 LayoutContent 찾기 (0) | 2015.09.26 |
---|---|
[XCEED/WPF] DockingManager 엘리먼트 사용하기 (0) | 2015.09.25 |
[XCEED/WPF] DataGridControl 엘리먼트 : 디폴트 셀 에디터 제공하기 (0) | 2015.09.07 |
[XCEED/WPF] DataGridControl 엘리먼트 : 복합 셀 에디터 제공하기 (0) | 2015.09.07 |
[XCEED/WPF] DataGridControl 엘리먼트 : 단순 셀 에디터 제공하기 (0) | 2015.09.07 |
[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 |