Mini Kabibi Habibi
<local:GridDemoModule x:Class="GridDemo.Validation" mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800" xmlns:local="clr-namespace:GridDemo" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid" xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008">
<local:GridDemoModule.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/GridDemo;component/Themes/generic.SL.xaml" />
</ResourceDictionary.MergedDictionaries>
<dxdb:NWindDataLoader x:Key="NWindDataLoader" />
</ResourceDictionary>
</local:GridDemoModule.Resources>
<dxdb:DemoModuleControl>
<dxdb:DemoModuleControl.OptionsContent>
<StackPanel>
<dx:GroupFrame Header="Unit Price condition" Margin="0,0,0,12">
<dxe:ListBoxEdit Background="{x:Null}" x:Name="unitPriceConditionListBox" SelectedIndex="0" ShowBorder="False">
<dxe:ListBoxEdit.StyleSettings>
<dxe:RadioListBoxEditStyleSettings />
</dxe:ListBoxEdit.StyleSettings>
<dxe:ListBoxEdit.Items>
<local:IsGreaterThanValidationRule Value="10" />
<local:IsGreaterThanOrEqualToValidationRule Value="10" />
<local:IsLessThanValidationRule Value="10" />
<local:IsLessThanOrEqualToValidationRule Value="10" />
<local:DoesNotEqualValidationRule Value="10" />
</dxe:ListBoxEdit.Items>
</dxe:ListBoxEdit>
</dx:GroupFrame>
<dx:GroupFrame Header="Quantity condition" Margin="0,0,0,12">
<dxe:ListBoxEdit Background="{x:Null}" x:Name="quantityConditionListBox" SelectedIndex="4" ShowBorder="False">
<dxe:ListBoxEdit.StyleSettings>
<dxe:RadioListBoxEditStyleSettings />
</dxe:ListBoxEdit.StyleSettings>
<dxe:ListBoxEdit.Items>
<local:IsGreaterThanValidationRule Value="40" />
<local:IsGreaterThanOrEqualToValidationRule Value="40" />
<local:IsLessThanValidationRule Value="40" />
<local:IsLessThanOrEqualToValidationRule Value="40" />
<local:DoesNotEqualValidationRule Value="40" />
</dxe:ListBoxEdit.Items>
</dxe:ListBoxEdit>
</dx:GroupFrame>
<dx:GroupFrame Header="Discount condition" Margin="0,0,0,0">
<dxe:ListBoxEdit Background="{x:Null}" x:Name="discountConditionListBox" SelectedIndex="1" ShowBorder="False">
<dxe:ListBoxEdit.StyleSettings>
<dxe:RadioListBoxEditStyleSettings />
</dxe:ListBoxEdit.StyleSettings>
<dxe:ListBoxEdit.Items>
<local:IsGreaterThanValidationRule Value="0" />
<local:IsGreaterThanOrEqualToValidationRule Value="0" />
<local:IsLessThanValidationRule Value="0" />
<local:IsLessThanOrEqualToValidationRule Value="0" />
<local:DoesNotEqualValidationRule Value="0" />
</dxe:ListBoxEdit.Items>
</dxe:ListBoxEdit>
</dx:GroupFrame>
</StackPanel>
</dxdb:DemoModuleControl.OptionsContent>
<dxg:GridControl Name="grid">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="OrderID" Width="50" MinWidth="30" ReadOnly="true" />
<dxg:GridColumn FieldName="ProductID" Header="Product" Width="100">
<dxg:GridColumn.EditSettings>
<dxe:ComboBoxEditSettings AutoComplete="True" ImmediatePopup="True" ValueMember="ProductID" DisplayMember="ProductName" ItemsSource="{Binding Path=Products, Source={StaticResource NWindDataLoader}}" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn x:Name="colUnitPrice" FieldName="UnitPrice" Width="100" Validate="colUnitPrice_Validate">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn x:Name="colQuantityPrice" FieldName="Quantity" Width="100" Validate="colQuantity_Validate">
<dxg:GridColumn.EditSettings>
<dxe:SpinEditSettings MaskType="Numeric" Mask="d" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn x:Name="colDiscount" FieldName="Discount" Width="100" Validate="colDiscount_Validate">
<dxg:GridColumn.EditSettings>
<dxe:SpinEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="p0" Increment="0.01" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
<dxg:GridColumn FieldName="SubTotal" Width="100" UnboundType="Decimal" AllowEditing="False" UnboundExpression="([UnitPrice] * [Quantity]) * (1 - [Discount])">
<dxg:GridColumn.EditSettings>
<dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
</dxg:GridColumn.EditSettings>
</dxg:GridColumn>
</dxg:GridControl.Columns>
<dxg:GridControl.GroupSummary>
<dxg:GridSummaryItem FieldName="From" SummaryType="Count" />
</dxg:GridControl.GroupSummary>
<dxg:GridControl.View>
<dxg:TableView Name="view" AutoWidth="true" ValidateRow="view_ValidateRow" CellValueChanged="view_CellUpdated" RowCanceled="view_RowCanceled" />
</dxg:GridControl.View>
</dxg:GridControl>
</dxdb:DemoModuleControl>
</local:GridDemoModule>