or
| Private Sub gv1_PreviewValidate(ByVal sender As System.Object, ByVal e As Telerik.Windows.Controls.GridView.Cells.CellValidatingRoutedEventArgs) |
| If e.NewValue = String.Empty Then |
| e.ValidationResult = New Telerik.Windows.Controls.GridView.ValidationResult(False, Nothing) |
| DirectCast(DirectCast(e.OriginalSource, System.Object), Telerik.Windows.Controls.GridView.GridViewCell).Style = Me.FindResource("ContentControlStyleError") |
| Else |
| e.ValidationResult = New Telerik.Windows.Controls.GridView.ValidationResult(True, Nothing) |
| DirectCast(DirectCast(e.OriginalSource, System.Object), Telerik.Windows.Controls.GridView.GridViewCell).Style = Nothing |
| End If |
and the style is
| <Style x:Key="ContentControlStyleError" TargetType="{x:Type telerik:GridViewCell}"> |
| <Setter Property="Template"> |
| <Setter.Value> |
| <ControlTemplate TargetType="{x:Type ContentControl}"> |
| <Border Width="110" Height="55" BorderThickness="2,2,2,2" CornerRadius="10,10,10,10" BorderBrush="#FF000000" RenderTransformOrigin="0.5,0.5"> |
| <Border.RenderTransform> |
| <TransformGroup> |
| <ScaleTransform ScaleX="1" ScaleY="1"/> |
| <SkewTransform AngleX="0" AngleY="0"/> |
| <RotateTransform Angle="17.431"/> |
| <TranslateTransform X="0" Y="0"/> |
| </TransformGroup> |
| </Border.RenderTransform> |
| <Border.Background> |
| <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> |
| <GradientStop Color="#FF000000" Offset="0"/> |
| <GradientStop Color="#FFDC1D1D" Offset="1"/> |
| </LinearGradientBrush> |
| </Border.Background> |
| <ContentPresenter |
| VerticalAlignment="Center" |
| HorizontalAlignment="Right" |
| Margin="0,0,10,0" |
| TextBlock.Foreground="White" /> |
| </Border> |
| </ControlTemplate> |
| </Setter.Value> |
| </Setter> |
| </Style> |
| 1 | Does it provide configurable keyboard and mouse edit commands. |
| 2 | |
| 3 | Can the Cell editors displaye without entering edit mode, under a variety of conditions such as a mouse hover over the cell or row, the cell or row becoming current, the row being edited, or always. |
| 4 | Automatically selects the appropriate editor control depending on the field data type. |
| 5 | Manages “null” and “DbNull” values. |
| 6 | Any portion of the grid can be made read-only. |
| 7 | Custom grouping in grid and details supported or not. Supports hierarchical, multi-level grouping in all views. |
| 8 | |
| 9 | 2D and 3D Card View |
| 10 | Row margin selects and resizes rows, and displays icons indicating that the row is current, is being edited, is an insertion, or has a validation error |
| 11 | Automatically changes a row’s height to fit the contents of the largest cell. |
| 12 | Supports error style when Validation throws an exception when trying to leave edit mode.Includes built-in data validation, at the cell or row level. Wether Error display integrated with the included views |
| 13 | Editor Controls Support: CheckBox. AutoSelectTextBox. DatePicker/Calendar. ValueRangeTextBox. NumericTextBox. MaskedTextBox. DateTimeTextBox. IPAddressMaskedTextBox. PhoneMaskedTextBox (North American format). Simple CurrencyMaskedTextBox. ExponentNumericTextBox. DateTimeTextBox (with ShortDate, ShortTime, ShortDateAndShortTime, and ShortDateAndLongTime formats). |
| 14 | Does it support Data virtualization (sometimes called “virtual mode” or “lazy loading”) vastly improves performance and reduces memory usage, especially when working with large data sources. |
| 15 | Can it automatically obtain and synchronizes bound data from any .NET source, including jagged arrays, any object that implements IListSource or IList, and any ADO.NET DataSet, DataTable, DataView, or DataViewManager object. |
| 16 | Can it intercept, parse, and modify data being synchronized with the database from the grid |
| 17 | Excel export of grid contents, including groups, detail content, and statistical functions (formulas and values), using XMLSS or CSV. Thanks and Regards |
| <Window x:Class="WpfApplication6.Window1" |
| xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| xmlns:Telerik="http://schemas.telerik.com/2008/xaml/presentation" |
| SizeToContent="WidthAndHeight" |
| Title="Window1"> |
| <Telerik:RadTreeView x:Name="sourceTree" Height="300" Width="300" IsDragDropEnabled="True"/> |
| </Window> |
| public partial class Window1 : Window |
| { |
| public Window1() |
| { |
| InitializeComponent(); |
| ObservableCollection<string> testCollection = new ObservableCollection<string>(); |
| testCollection.Add("one"); |
| testCollection.Add("two"); |
| testCollection.Add("three"); |
| ListCollectionView view = new ListCollectionView(testCollection); |
| sourceTree.ItemsSource = view; |
| } |
| } |
| <Window x:Class="RadGridViewBug.Window1" |
| xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| xmlns:t="http://schemas.telerik.com/2008/xaml/presentation" |
| Title="Window1" Height="300" Width="300"> |
| <StackPanel> |
| <t:RadGridView x:Name="grid" Height="300"/> |
| </StackPanel> |
| </Window> |
| public partial class Window1 : Window |
| { |
| public Window1() |
| { |
| InitializeComponent(); |
| TestRow[] rows = new TestRow[2]; |
| rows[0] = new TestRow(); |
| rows[1] = new TestRow(); |
| grid.ItemsSource = rows; |
| } |
| } |
| class TestRow |
| { |
| public RadNumericUpDown updown1 { get; set; } |
| public RadNumericUpDown updown2 { get; set; } |
| public TestRow() |
| { |
| updown1 = new RadNumericUpDown(); |
| updown2 = new RadNumericUpDown(); |
| } |
| } |
| at Telerik.Windows.Controls.GridView.GridViewItemsControl.ExpandToAvailableSpace() in r:\WPF_Scrum\WPF_Team\Sources\Development\WPF\GridView\GridView\GridViewItemsControl.cs:line 1329 |
| at Telerik.Windows.Controls.GridView.GridViewItemsControl.GridViewItemsControl_Loaded(Object sender, RoutedEventArgs e) in r:\WPF_Scrum\WPF_Team\Sources\Development\WPF\GridView\GridView\GridViewItemsControl.cs:line 852 |
| at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) |
| at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) |
| at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) |
| at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) |
| at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent) |
| at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root) |
| at MS.Internal.LoadedOrUnloadedOperation.DoWork() |
| at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks() |
| at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() |
| at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget) |
| at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget) |
| at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) |
| at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) |
| at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) |
| at System.Windows.Threading.DispatcherOperation.InvokeImpl() |
| at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state) |
| at System.Threading.ExecutionContext.runTryCode(Object userData) |
| at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) |
| at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) |
| at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) |
| at System.Windows.Threading.DispatcherOperation.Invoke() |
| at System.Windows.Threading.Dispatcher.ProcessQueue() |
| at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) |
| at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) |
| at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) |
| at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) |
| at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) |
| at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) |
| at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter) |
| at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg) |
| at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) |
| at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) |
| at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) |
| at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) |
| at System.Windows.Threading.Dispatcher.Run() |
| at System.Windows.Application.RunDispatcher(Object ignore) |
| at System.Windows.Application.RunInternal(Window window) |
| at System.Windows.Application.Run(Window window) |
| at System.Windows.Application.Run() |
| at Imis.Kinetik.TeamPlayer.Client.App.Main() in C:\Projects\TeamPlayerClient\TeamPlayer.Client\obj\Development\App.g.cs:line 0 |
| at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) |
| at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) |
| at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() |
| at System.Threading.ThreadHelper.ThreadStart_Context(Object state) |
| at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) |
| at System.Threading.ThreadHelper.ThreadStart() |
| <Telerik:RadGridView MinHeight="200" IsHierarchyRoot="False" ShowGroupPanel="False" Grid.Row="7" Grid.ColumnSpan="2" Margin="5" AutoGenerateColumns="False" ItemsSource="{Binding Path=Info.Fields, ElementName=workunitNodeUC}" > |
| <Telerik:RadGridView.Columns> |
| <Telerik:GridViewDataColumn AutofitWidth="0" UniqueName="{x:Null}"> |
| <Telerik:GridViewDataColumn.CellStyle> |
| <Style TargetType="{x:Type Telerik:GridViewCell}"> |
| <Setter Property="Template"> |
| <Setter.Value> |
| <ControlTemplate TargetType="{x:Type Telerik:GridViewCell}"> |
| <CheckBox x:Name="chbChosen" HorizontalAlignment="Center"/> |
| </ControlTemplate> |
| </Setter.Value> |
| </Setter> |
| </Style> |
| </Telerik:GridViewDataColumn.CellStyle> |
| </Telerik:GridViewDataColumn> |
| <Telerik:GridViewDataColumn AutofitWidth="0" HeaderText="Description" UniqueName="Description" DataMemberPath="Name" /> |
| <Telerik:GridViewDataColumn AutofitWidth="0" HeaderText="Comment" UniqueName="Comment" DataMemberPath="InnerValue" /> |
| </Telerik:RadGridView.Columns> |
| </Telerik:RadGridView> |