
Hi I'm using the RadCartesianChart to plot multiple series of data.
When the data range is small, I receive a divide by zero exception.
01.<telerik:RadCartesianChart Name="GraphSeriesChart" Grid.Row="2" Margin="10" Background="LightGray" >02. 03. <telerik:RadCartesianChart.Behaviors >04. <telerik:ChartPanAndZoomBehavior ZoomMode="Both" DragMode="Pan" PanMode="Both" />05. </telerik:RadCartesianChart.Behaviors>06. 07. <telerik:RadCartesianChart.HorizontalAxis >08. <telerik:DateTimeCategoricalAxis LabelFormat="HH:mm:ss" MajorTickInterval="250" LabelFitMode="MultiLine" />09. </telerik:RadCartesianChart.HorizontalAxis>10. 11. <telerik:RadCartesianChart.VerticalAxis >12. <telerik:LinearAxis HorizontalLocation="Left" Visibility="Visible" />13. </telerik:RadCartesianChart.VerticalAxis>14. 15. <telerik:RadCartesianChart.SeriesProvider >16. <telerik:ChartSeriesProvider Source="{Binding TECSeriesSelected}" >17. <telerik:ChartSeriesProvider.SeriesDescriptors >18. <telerik:CategoricalSeriesDescriptor ValuePath="Value" CategoryPath="Time" >19. </telerik:CategoricalSeriesDescriptor>20. </telerik:ChartSeriesProvider.SeriesDescriptors>21. </telerik:ChartSeriesProvider>22. </telerik:RadCartesianChart.SeriesProvider>23. 24. <telerik:RadCartesianChart.Grid >25. <telerik:CartesianChartGrid MajorLinesVisibility="XY" >26. <telerik:CartesianChartGrid.MajorXLineStyle >27. <Style TargetType="Line" >28. <Setter Property="Stroke" Value="Gray" />29. </Style>30. </telerik:CartesianChartGrid.MajorXLineStyle>31. <telerik:CartesianChartGrid.MajorYLineStyle >32. <Style TargetType="Line" >33. <Setter Property="Stroke" Value="Gray" />34. </Style>35. </telerik:CartesianChartGrid.MajorYLineStyle>36. </telerik:CartesianChartGrid>37. </telerik:RadCartesianChart.Grid>38. </telerik:RadCartesianChart>
01.TECSeriesSelected.Clear();02. 03.TECSeriesSelected.Add(new RadObservableCollection<DataPoint>(new DataPoint[3]));04.TECSeriesSelected.Add(new RadObservableCollection<DataPoint>(new DataPoint[3]));05. 06.TECSeriesSelected[0][0] = new DataPoint();07.TECSeriesSelected[0][0].Value = 0;08.TECSeriesSelected[0][0].Time = new DateTime(0);09. 10.TECSeriesSelected[0][1] = new DataPoint();11.TECSeriesSelected[0][1].Value = 0;12.TECSeriesSelected[0][1].Time = new DateTime(10);13. 14.TECSeriesSelected[0][2] = new DataPoint();15.TECSeriesSelected[0][2].Value = 0;16.TECSeriesSelected[0][2].Time = new DateTime(20);17. 18.TECSeriesSelected[1][0] = new DataPoint();19.TECSeriesSelected[1][0].Value = 2.75E-28F;20.TECSeriesSelected[1][0].Time = new DateTime(0);21. 22.TECSeriesSelected[1][1] = new DataPoint();23.TECSeriesSelected[1][1].Value = 2.75E-28F;24.TECSeriesSelected[1][1].Time = new DateTime(10);25. 26.TECSeriesSelected[1][2] = new DataPoint();27.TECSeriesSelected[1][2].Value = 2.75E-28F;28.TECSeriesSelected[1][2].Time = new DateTime(20);Is there a way to fix this issue?

void MakeNewPane(RadPane newPane){RadPaneGroup radPaneGroup = new RadPaneGroup();RadSplitContainer splitContainer = new RadSplitContainer();// Fixed 300x400 size, centered on the main window, so it's easy to find.Window parentWindow = Window.GetWindow(this);splitContainer.SetValue(RadDocking.FloatingSizeProperty, new Size(400, 300));splitContainer.SetValue(RadDocking.FloatingLocationProperty, new Point((parentWindow.ActualWidth - 400) / 2, (parentWindow.ActualHeight - 300) / 2));splitContainer.Items.Add(radPaneGroup);radDocking.Items.Add(splitContainer);radPaneGroup.AddItem(newPane, DockPosition.Center)pane.MakeFloatingDockable();}<RadDocking> <SplitContainers> <RadSplitContainer Dock="DockedLeft" Width="414" RelativeWidth="100" RelativeHeight="100" IsAutoGenerated="True"> <Items> <RadPaneGroup RelativeWidth="100" RelativeHeight="100" IsAutoGenerated="True" SelectedIndex="0"> <Items> <RadPane SerializationTag="PortfolioHierarchy1" IsDockable="True" Title="Hierarchy" Header="Hierarchy" CanDockInDocumentHost="False" /> </Items> </RadPaneGroup> </Items> </RadSplitContainer> <RadSplitContainer Dock="DockedTop" RelativeWidth="100" RelativeHeight="100" IsAutoGenerated="True"> <Items> <RadPaneGroup RelativeWidth="100" RelativeHeight="100" IsAutoGenerated="True" SelectedIndex="0"> <Items> <RadPane SerializationTag="PortfolioSummary1" IsDockable="True" Title="Summary" Header="Summary" CanDockInDocumentHost="False" /> </Items> </RadPaneGroup> </Items> </RadSplitContainer> <RadSplitContainer Dock="DockedLeft" Width="240"> <Items> <RadPaneGroup SelectedIndex="-1"> <Items /> </RadPaneGroup> </Items> </RadSplitContainer> <RadSplitContainer Dock="DockedLeft" Width="240"> <Items> <RadPaneGroup SelectedIndex="-1"> <Items /> </RadPaneGroup> </Items> </RadSplitContainer> <RadSplitContainer Dock="DockedLeft" Width="240"> <Items> <RadPaneGroup SelectedIndex="-1"> <Items /> </RadPaneGroup> </Items> </RadSplitContainer> </SplitContainers> </RadDocking>IsAutoGenerated="True")
that would allow the RadDocking to clean things up when refreshing.. basically delete the empty ones.Hello,
I'm currently using the free trial TelerikDevCraftUltimateSetup_2016_4_1317_1 have found some strange behavior or a bug whilst trying to recreate an existing layout I want to replicate.
I have some RadPane's which needs to be docked as unpinned so they slide in and out when clicked. Inside the PadPane is a RadTabControl with 3 tabs.If I then put a PropertyGrid inside a RadTabItem the RadPane no longer stays open when a tab item is clicked. Is this a bug? Is there a way to stop this happening?
I've attached an example showing the problem
On the attached,
1. Click Header2 to unhide the pane (keep unpinned)
2. If you click between the 2 tabs with headers "Works Okay" you can see the expected behavior where the panel does not slide away
3. If you click on the tab with header "Not Working" and then then another tab the panel slides out of view. This tab contains a RadPropertyGrid. How can this be prevented?
MainWindow.xaml:
<telerik:RadWindow x:Class="WpfApp1.MainWindow" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Header="MainWindow" Height="500" Width="800"> <Grid> <telerik:RadDocking x:Name="radDocking1" RetainPaneSizeMode="DockingAndFloating"> <telerik:RadSplitContainer Name="LeftContainer" InitialPosition="DockedLeft"> <telerik:RadPaneGroup x:Name="Group1"> <telerik:RadPane x:Name="mtPane" Header="Header1"> </telerik:RadPane> </telerik:RadPaneGroup> </telerik:RadSplitContainer> <telerik:RadSplitContainer x:Name="RightContainer" InitialPosition="DockedRight"> <telerik:RadPaneGroup x:Name="Group2" Margin="-310,0,6,0"> <telerik:RadPane x:Name="ssPane" Header="Header2" IsPinned="false"> <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" > <Grid HorizontalAlignment="Stretch" VerticalAlignment="Top" > </Grid> <telerik:RadTabControl x:Name="radTabControl" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <telerik:RadTabItem x:Name="RadTabSettings" Header="Works Okay" Height="30"> </telerik:RadTabItem> <telerik:RadTabItem x:Name="RadTabSelections" Header="Works Okay" Height="30"> </telerik:RadTabItem> <telerik:RadTabItem x:Name="RadTabStaking" Header="Not Working" > <telerik:RadPropertyGrid x:Name="propertyGridEventStaking"> </telerik:RadPropertyGrid> </telerik:RadTabItem> </telerik:RadTabControl> </Grid> </telerik:RadPane> </telerik:RadPaneGroup> </telerik:RadSplitContainer> </telerik:RadDocking> </Grid></telerik:RadWindow>I am trying to generate a Horizontal stack bar that has approximately five different color coded "events". I would like to display a horizontal stack that shows what event was present, with respect to time. I am very new to this (sense yesterday) and am having trouble navigating to the correct approach. I would like to dynamically generate the events that are presented in the chart. Currently I have the following XAML:
<telerik:RadCartesianChart x:Name="radChartAction" Palette="Windows8" Margin="0,151,552.2,-0.2">
<telerik:RadCartesianChart.HorizontalAxis>
<telerik:LinearAxis/>
</telerik:RadCartesianChart.HorizontalAxis>
<telerik:RadCartesianChart.VerticalAxis>
<telerik:CategoricalAxis/>
</telerik:RadCartesianChart.VerticalAxis>
<telerik:RadCartesianChart.Series>
<telerik:BarSeries CombineMode="Stack">
<telerik:BarSeries.DataPoints>
<telerik:CategoricalDataPoint Category="January" Value="5"/>
</telerik:BarSeries.DataPoints>
</telerik:BarSeries>
<telerik:BarSeries CombineMode="Stack">
<telerik:BarSeries.DataPoints>
<telerik:CategoricalDataPoint Category="January" Value="7"/>
</telerik:BarSeries.DataPoints>
</telerik:BarSeries>
<telerik:BarSeries CombineMode="Stack">
<telerik:BarSeries.DataPoints>
<telerik:CategoricalDataPoint Category="January" Value="20"/>
</telerik:BarSeries.DataPoints>
</telerik:BarSeries>
</telerik:RadCartesianChart.Series>
When I attempt to add an additional bar series using the following code behind it appears to have not effect. NOTE: when I Changed stacked to cluster in the code behind the graph shifts down as if to make room for the new series object. However, there is still nothing visible with regard to the programmatically generated bar series.
BarSeries ser = new BarSeries();
ser.Visibility = System.Windows.Visibility.Visible;
ser.CombineMode = Telerik.Charting.ChartSeriesCombineMode.Stack;
//ser.CombineMode = Telerik.Charting.ChartSeriesCombineMode.Cluster;
ser.ValueBinding = new PropertyNameDataPointBinding("50");
ser.CategoryBinding = new PropertyNameDataPointBinding("January");
I would like to also be able to have control over the color for the dynamically generated events. so all of event 1 is color coordinated.
Thanks

We are having a lot of performance issues while using RadDiagram.
We have a main window that uses Diagram as a UserControl, in the first diagram the problems start when the number of shapes is above 20 as you can see in the video i attached. However in the second diagram the performance is even worse since whith just 12 shapes the scroll movement is terrible.
I'm going to provide you as much information as i can, so we are using 2 textblocks and a textbox in our node template all of them use bindings to get the text, at first we thought about binding perfomance problems but it is still happening with regular text.
Our shapes templates dont have a large visual tree, they are just a border with a few textblocks a button and background colors.
We are using the last binary version from telerik and our class model is organized like this.
• CustomDiagram inherits from RadDiagram
• CustomShape inherits from RadDiagramShape
• CustomConnection inherits from RadDiagramConnection
However our own implementation of your controls is just a few methods or properties not a really huge overhaul.
Is there any reason why a diagram whith just 42 shapes is working that bad?
Below you can see examples of our code.
<DataTemplate x:Key="Shape1">
<Border BorderThickness="2" Height="120" Width="200" CornerRadius="4" SnapsToDevicePixels="True">
<Border.Effect>
<DropShadowEffect BlurRadius="5" ShadowDepth="1" Direction="270" Color="#CCCCCC"/>
</Border.Effect>
<Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1" >
<GradientStop Color="#D31027" Offset="0" />
<GradientStop Color="#EA384D" Offset="0.0" />
</LinearGradientBrush>
</Border.Background>
<Grid>
<StackPanel Orientation="Vertical">
<TextBlock Text="aa" FontFamily="Segoe UI Semilight" FontSize="30" Margin="4,5,6,-10" Foreground="White"></TextBlock>
<TextBlock Text="aa" FontFamily="Segoe UI Semilight"
Margin="5.3,5,6,5"
FontSize="15">
<TextBlock.Foreground>
<SolidColorBrush
Color="White" Opacity="0.5"/>
</TextBlock.Foreground>
</TextBlock>
</StackPanel>
<Button x:Name="product"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center" Style="{DynamicResource
MetroCircleButtonStyle}" Panel.ZIndex="99"
Background="#333333" Foreground="White"
BorderBrush="#2E2E2E" Height="45" Width="45"
Margin="146,61,5,10">
<Button.Content>
<iconPacks:PackIconModern Kind="Edit" />
</Button.Content>
<Button.Effect>
<DropShadowEffect BlurRadius="5" ShadowDepth="1"
Direction="270" Color="#CCCCCC"/>
</Button.Effect>
</Button>
<Border Background="White" CornerRadius="0,0,3,3"
Margin="0,86,0,0">
</Border>
</Grid>
</Border>
</DataTemplate>
<Style TargetType="ModelShape:CustomShape">
<Setter Property="Background"
Value="Transparent"></Setter>
<Setter Property="BorderBrush"
Value="Transparent"></Setter>
<Setter Property="IsEditable"
Value="False"></Setter>
<Setter Property="IsResizingEnabled"
Value="False"></Setter>
<Setter Property="IsRotationEnabled"
Value="False"></Setter>
<Setter Property="ContentTemplate" Value="{DynamicResource
Shape1}"></Setter>
</Style>
We are also using your propertygrid
control that loads the customshape properties everytime you click on it, we now
know that everytime you click it it will update all of them on the property
grid causing perfomance issues, its true that after disabling the property grid
the performance is a little bit better but still not as good as expected.
this is how we iterate through every
shape property and only showing the ones we want
private
void CustomAutogeneratingProperty(object sender,
AutoGeneratingPropertyDefinitionEventArgs e)
{
(e.PropertyDefinition.Binding as
Binding).ValidatesOnDataErrors = true;
(e.PropertyDefinition.Binding as
Binding).NotifyOnValidationError = true;
(e.PropertyDefinition.Binding as
Binding).ValidatesOnExceptions = true;
foreach (var prop in typeof(RadDiagramShape).
GetProperties(BindingFlags.Public | BindingFlags.FlattenHierarchy |
BindingFlags.Instance).
Where(prop
=>
(prop.Name.Equals(e.PropertyDefinition.AutoGeneratedPath))
|| ((sender as
CustomPropertyGrid).Item.GetType().Name.Equals(typeof(RadDiagramConnection).Name))))
{
e.PropertyDefinition.Visibility = Visibility.Hidden;
}
}
but as i said its still working awful.
We had problems using containers so we
are just using shapes instead.
Our theory is that everytime you move a
shape the diagram reloads all the properties, all of the bindings and maybe the
ContentTemplate or maybe are issues about the draggin service not working well.
We searched for information
We are hoping you can help us in this
scenario.
If you need more information just let me
know.
PS: Our laptops have 16 Gb of ram and a nvidia gforce 750m there shouldnt be a problem with performance.
https://www.dropbox.com/s/irw9ie0mlfqzb6n/as.mp4?dl=0
https://www.dropbox.com/s/827orf58vxmbil2/PerformanceError.mp4?dl=0
Hi there,
I'd like you to give some advice or demo about two questions.
When many rows are in a RadGridView,
1. the way the RadGirdview to scroll smoothly with gradation.
2. I need to see the RadGridview row by row while scrolling.
I'm sorry that I can't upload source code because of a security issue.
please reply it. thank you.
Hello All,
I am having troubles trying to get something displayed... One would think that the issue I'm having should be pretty straight forward in implementation, but I can't seem to figure it out... In my ViewModel, I have two observable collections: BadgeHistory collection and a CardStatus collection. The BadgeHistory collection contains objects of an entity that has a property of a CardStatusID. The CardStatus collection is a simple entity of an ID and Status string name.
Here is my ViewModel code:
using GalaSoft.MvvmLight;using GalaSoft.MvvmLight.CommandWpf;using MeyerToolDAL;using System;using System.Collections.ObjectModel;using System.Diagnostics.CodeAnalysis;namespace NewHireApp.ViewModel{ /// <summary> /// This class contains properties that a View can data bind to. /// <para> /// See http://www.galasoft.ch/mvvm /// </para> /// </summary> public class EmployeeMaintenanceViewModel : TabViewModelBase { #region Fields private string _empID = string.Empty; private ObservableCollection<BadgeId> _badgeHistory; #endregion Fields #region Constructors /// <summary> /// Initializes a new instance of the EmployeeMaintenanceViewModel class. /// </summary> public EmployeeMaintenanceViewModel() { BadgeHistory = new ObservableCollection<BadgeId>(); using (var dc = new MeyerToolDAL.MeyerToolDALEntities()) { CardStatuses = new ObservableCollection<BadgeCardStatus>(dc.BadgeCardStatus); } } /// <summary> /// Initializes a new instance of the EmployeeMaintenanceViewModel class. /// </summary> public EmployeeMaintenanceViewModel(string header) { Header = header; BadgeHistory = new ObservableCollection<BadgeId>(); using (var dc = new MeyerToolDAL.MeyerToolDALEntities()) { CardStatuses = new ObservableCollection<BadgeCardStatus>(dc.BadgeCardStatus); } } #endregion Constructors #region Properties /// <summary> /// Gets or sets the EmpID property. /// </summary> /// <value> /// Changes to that property's value raise the PropertyChanged event. /// </value> public string EmpID { get { return _empID; } set { if (_empID == value) { return; } _empID = value; RaisePropertyChanged(() => EmpID); } } /// <summary> /// Gets or sets the BadgeHistory property. /// </summary> /// <value> /// Changes to that property's value raise the PropertyChanged event. /// </value> public ObservableCollection<BadgeId> BadgeHistory { get { return _badgeHistory; } set { if (_badgeHistory == value) { return; } _badgeHistory = value; RaisePropertyChanged(() => BadgeHistory); } } private ObservableCollection<BadgeCardStatus> _cardStatuses; /// <summary> /// Gets or sets the CardStatuses property. /// </summary> /// <value> /// Changes to that property's value raise the PropertyChanged event. /// </value> public ObservableCollection<BadgeCardStatus> CardStatuses { get { return _cardStatuses; } set { if (_cardStatuses == value) { return; } _cardStatuses = value; RaisePropertyChanged(() => CardStatuses); } } #endregion Properties #region Commands #region SearchCommand // move this up to the Fields region... private RelayCommand _searchCommand; /// <summary> /// Gets the SearchCommand. /// </summary> /// <value> /// The SearchCommand. /// </value> public RelayCommand SearchCommand { get { return _searchCommand ?? (_searchCommand = new RelayCommand( SearchCommand_Execute, SearchCommand_CanExecute)); } } private void SearchCommand_Execute() { using (var dc = new MeyerToolDAL.MeyerToolDALEntities()) { BadgeHistory = new ObservableCollection<BadgeId>(dc.BadgeIds.FindByEmployeeID(EmpID)); } } private bool SearchCommand_CanExecute() { return true; } #endregion SearchCommand #endregion Commands #region Methods #endregion Methods }}
Here's my View:
<UserControl x:Class="NewHireApp.Views.EmployeeMaintenanceView" xmlns:ignore="http://www.galasoft.ch/ignore" xmlns:local="clr-namespace:NewHireApp" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:vm="clr-namespace:NewHireApp.ViewModel" mc:Ignorable="d ignore"> <Grid Width="750"> <Grid.RowDefinitions> <RowDefinition Height="35" /> <RowDefinition Height="35" /> <RowDefinition Height="110" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel Grid.Row="0" HorizontalAlignment="Center" Orientation="Horizontal"> <telerik:RadWatermarkTextBox x:Name="radWatermarkTextBox" Width="74" Height="22" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top" Text="{Binding EmpID}" TextWrapping="NoWrap" WatermarkContent="Emp. ID" /> <Button x:Name="button" Width="65" Margin="5,6,5,0" HorizontalAlignment="Left" VerticalAlignment="Top" Command="{Binding SearchCommand}" Content="Search" /> </StackPanel> <StackPanel Grid.Row="2" HorizontalAlignment="Center" Orientation="Horizontal"> <telerik:RadButton Margin="5" CornerRadius="15" ToolTip="Assign New Badge"> <StackPanel Width="65"> <Image Height="95" Source="/Images/NewBadge.png" /> </StackPanel> </telerik:RadButton> </StackPanel> <StackPanel Grid.Row="3"> <telerik:RadGridView AutoGenerateColumns="False" ItemsSource="{Binding BadgeHistory}" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto" ShowGroupPanel="False"> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn DataMemberBinding="{Binding BadgeNum}" Header="Badge ID" IsFilterable="False" /> <telerik:GridViewDataColumn DataFormatString="{} {0:dd MMM yyyy}" DataMemberBinding="{Binding DateAdded}" Header="Added On" IsFilterable="False" /> <telerik:GridViewComboBoxColumn DataMemberBinding="{Binding CardStatusId}" DisplayMemberPath="CardStatus" Header="Card Status" IsFilterable="False" SelectedValueMemberPath="CardStatusID" ItemsSource="{Binding CardStatuses}" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding IssuedBy}" Header="Issued By" IsFilterable="False" /> <telerik:GridViewDataColumn Width="*" DataMemberBinding="{Binding Notes}" Header="Notes" IsFilterable="False" /> </telerik:RadGridView.Columns> </telerik:RadGridView> </StackPanel> </Grid></UserControl>
In my View I have a RadGridView with the columns specified. I have set the ItemSource of the grid to the BadgeHistory collection and for one of the columns I specified as a GridViewComboBoxColumn. For the life of me, I can't seem to get it to display the correct stuff... Right now as it stands, the column displays empty, but IT is a combobox, so I can select it and see all of the defined cardstatuses. However, the initial data in the BadgeHistory collection has various values in it's CardStatusID field, and NONE of those are displaying!!! Also when I do select a value for a particular row, it shows up, but as soon as I try and edit a different row, the previous row's value disappears!!!
Any clue as to how do I get the rows to display the CardStatus string values from the second collection??? What am I doing wrong here??? I'm pretty sure this is something simple that I'm overlooking...
Thanks in advance,
Kevin Orcutt
public class MyItemViewModel{ public int Number { get; set; } public string NumberSeperator { get; set; } public int SubNumber { get; set; } public string SubSubNumber { get; set; } public string FullNumber { get { return string.Format("{0}{1}{2}{3}", Number, NumberSeperator, SubNumber, SubSubNumber); } }}<MyCustomColumn NumberBinding="{Binding Number}" NumberSeperatorBinding="{Binding NumberSeperator}" SubNumberBinding="{Binding SubNumber}" SubSubNumberBinding="{Binding SubSubNumber}" />public class MyCustomColumn : GridViewBoundColumnBase{ public Binding NumberBinding { get { return (Binding)GetValue(NumberBindingProperty); } set { SetValue(NumberBindingProperty, value); } } public static readonly DependencyProperty NumberBindingProperty = DependencyProperty.Register("NumberBinding", typeof(Binding), typeof(MyCustomColumn), new PropertyMetadata(null)); public Binding NumberSeperatorBinding { get { return (Binding)GetValue(NumberSeperatorBindingProperty); } set { SetValue(NumberSeperatorBindingProperty, value); } } public static readonly DependencyProperty NumberSeperatorBindingProperty = DependencyProperty.Register("NumberSeperatorBinding", typeof(Binding), typeof(MyCustomColumn), new PropertyMetadata(null)); public Binding SubNumberBinding { get { return (Binding)GetValue(SubNumberBindingProperty); } set { SetValue(SubNumberBindingProperty, value); } } public static readonly DependencyProperty SubNumberBindingProperty = DependencyProperty.Register("SubNumberBinding", typeof(Binding), typeof(MyCustomColumn), new PropertyMetadata(null)); public Binding SubSubNumberBinding { get { return (Binding)GetValue(SubSubNumberBindingProperty); } set { SetValue(SubSubNumberBindingProperty, value); } } public static readonly DependencyProperty SubSubNumberBindingProperty = DependencyProperty.Register("SubSubNumberBinding", typeof(Binding), typeof(MyCustomColumn), new PropertyMetadata(null));}public override FrameworkElement CreateCellEditElement(GridViewCell cell, object dataItem) { var e1 = new RadMaskedNumericInput(); e1.SetBinding(RadMaskedNumericInput.ValueProperty, NumberBinding); var e2 = new RadMaskedTextInput(); e2.SetBinding(RadMaskedTextInput.ValueProperty, NumberSeperatorBinding); var e3 = new RadMaskedNumericInput(); e3.SetBinding(RadMaskedNumericInput.ValueProperty, SubNumberBinding); var e4 = new RadMaskedTextInput(); e4.SetBinding(RadMaskedTextInput.ValueProperty, SubSubNumberBinding); var wp = new WrapPanel(); wp.Children.Add(e1); wp.Children.Add(e2); wp.Children.Add(e3); wp.Children.Add(e4); return wp; }