[DEVEXPRESS/WPF] GridControl 클래스 : CustomRowFilter 이벤트를 사용하여 커스텀 행 필터 처리하기
DevExpress/WPF 2014. 3. 16. 09:00728x90
반응형
728x170
▶ XAML
<Grid xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel
Grid.Row="0"
Margin="0 10 0 10"
Orientation="Horizontal">
<CheckBox x:Name="hideEvenRowCheckBox"
Margin="10 0 10 0"
VerticalAlignment="Center"
Content="Hide Even Row"
Checked="checkBox_Checked"
Unchecked="checkBox_Checked" />
<CheckBox x:Name="hideOddRowCheckBox"
VerticalAlignment="Center"
Content="Hide Odd Row"
Checked="checkBox_Checked"
Unchecked="checkBox_Checked" />
</StackPanel>
<dxg:GridControl x:Name="gridControl"
Grid.Row="1"
AutoGenerateColumns="AddNew"
CustomRowFilter="gridControl_CustomRowFilter">
<dxg:GridControl.View>
<dxg:TableView x:Name="tableView"
AutoWidth="True"
ShowGroupPanel="False"
NavigationStyle="None" />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
728x90
▶ C#
using System.Windows;
using DevExpress.Xpf.Grid;
...
this.gridControl.ItemsSource = new object[] { "A", "B", "C", "D", "E", "F", "G", "H" };
...
#region 그리드 컨트롤 커스텀 행 필터 처리하기 - gridControl_CustomRowFilter(sender, e)
/// <summary>
/// 그리드 컨트롤 커스텀 행 필터 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void gridControl_CustomRowFilter(object sender, RowFilterEventArgs e)
{
if(this.hideOddRowCheckBox.IsChecked.Value && e.ListSourceRowIndex % 2 == 1)
{
e.Visible = false;
}
if(this.hideEvenRowCheckBox.IsChecked.Value && e.ListSourceRowIndex % 2 == 0)
{
e.Visible = false;
}
e.Handled = !e.Visible ? true : false;
}
#endregion
#region 체크 박스 체크시 처리하기 - checkBox_Checked(sender, e)
/// <summary>
/// 체크 박스 체크시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void _pCheckBox_Checked(object pSender, RoutedEventArgs e)
{
this.gridControl.RefreshData();
}
#endregion
728x90
반응형
그리드형(광고전용)
댓글을 달아 주세요