Hello, Telerik
I want to create a feature with the following characteristics:
1. Use of the MVVM pattern.
2. The number of columns in the DataGridView is not fixed but dynamic. (Users can specify the number of columns as an option, allowing for dynamic changes.)
3. Only the first column's text is fixed, while the 2nd to nth columns are ComboBoxes, allowing users to select which columns they want to view.
For example, if a class has (name, age, gender, department, major, student number, average grade, highest grade, lowest grade) as fields,
'Name' is always shown in the first column as fixed data.
'Age' to 'Lowest Grade' are available as ComboBox options for users to select and view as they wish.
If n = 5, it could be displayed as follows:
1st | 2nd | 3rd | 4th | 5th
Name (Fixed) | Age | Gender | Major | Avg Score
or
1st | 2nd | 3rd | 4th | 5th
Name (Fixed) | Major | Avg Score | Max Score | Min Score
In this way, users can view data in the columns of their choice.
As mentioned, since the number of columns is dynamic, I don't want to write the column code as below.
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="column 1" DataMemberBinding="{Binding data_1}"/>
<telerik:GridViewDataColumn Header="column 2" DataMemberBinding="{Binding data_2}"/>
<telerik:GridViewDataColumn Header="column .." DataMemberBinding="{Binding data_1}"/>
<telerik:GridViewDataColumn Header="column n" DataMemberBinding="{Binding data_n}"/>
</telerik:RadGridView.Columns>
I searched all the SDK examples and forums, but I don't know how to write it.
Thank you in advance.
Hi, we are looking at using the RadStepProgressBar
in Xaml
<telerik:RadStepProgressBar
x:Name="SystemStepProgressBar"
ItemsSource="{Binding Steps}"
SelectedItem="{Binding SelectedStep, Mode=TwoWay}">
We are binding to a collection of StepInfo as per example online
When we change the SelectedItem in code behind, this is not registering visually, even though the RadStepProgressBar.SelectedItem and SelectedIndex is as we expect the visual display does not change?
I think I have found i bug with selection with Alt-key on RadScheduleView.
I use a WeekViewDefinition as my active view definition. When I select a square by holding Alt-key while dragging the selection breaks if I have any group descriptions defined.
I have a minor tick length of 15 minutes. When my selection reaches the last tick of any day (after 23:45) the selection jumps to next day close to the time where my selection started.
I am attaching a video that illustrates the problem.
If I dont have any group description on my RadScheduleView I dont get this problem.
Here is my schedule view detinition:
<telerik:RadScheduleView
x:Name="ScheduleView"
AppointmentsSource="{Binding Appointments}"
VisibleRangeChangedCommand="{Binding VisibleRangeChangedCommand}"
VisibleRangeChangedCommandParameter="{Binding VisibleRange, RelativeSource={RelativeSource Self}}"
SnapAppointments="True"
TodayButtonVisibility="Hidden"
IsInlineEditingEnabled="False"
NavigationHeaderVisibility="Collapsed"
SpecialSlotsSource="{Binding SpecialSlots}"
FirstVisibleTime="0:00"
ResourceTypesSource="{Binding ResourceTypes}"
TimeRulerItemStyleSelector="{StaticResource TimeRulerItemStyleSelector}"
AppointmentStyleSelector="{StaticResource AppointmentItemStyleSelector}"
ToolTipTemplate="{StaticResource AppointmentToolTipTemplate}"
GroupHeaderStyleSelector="{StaticResource SchemaGroupHeaderStyleSelector}"
GroupHeaderContentTemplateSelector="{StaticResource SchemaGroupHeaderContentTemplateSelector}">
<b:Interaction.Behaviors>
<schedules:PreventCloseDialogBehavior/>
<behaviors:PreventAddScheduleDialogException/>
<behaviors:FastAppointmentAddBehavior Appointments="{Binding Appointments}"/>
<behaviors:FilterAppointmentsBehavior/>
</b:Interaction.Behaviors>
<telerik:RadScheduleView.ActiveViewDefinition>
<telerik:WeekViewDefinition
MinTimeRulerExtent="200"
TimerulerMajorTickStringFormat="{}{0:%H}:{0:mm}"
GroupHeaderDateStringFormat="{}{0:ddd}"
ShowWeekGroupHeaders="False"
MinorTickLength="15min"
Orientation="Horizontal"
StretchGroupHeaders="True"
FirstDayOfWeek="Monday"
VisibleDays="7" />
</telerik:RadScheduleView.ActiveViewDefinition>
<telerik:RadScheduleView.DragDropBehavior>
<behaviors:ScheduleDragDropBehavior />
</telerik:RadScheduleView.DragDropBehavior>
<telerik:RadScheduleView.SlotSelectionBehavior>
<behaviors:ScheduleSlotSelectionBehavior/>
</telerik:RadScheduleView.SlotSelectionBehavior>
<telerik:RadScheduleView.GroupDescriptionsSource>
<telerik:GroupDescriptionCollection>
<telerik:DateGroupDescription/>
<telerik:ResourceGroupDescription ResourceType="Schedules" />
</telerik:GroupDescriptionCollection>
</telerik:RadScheduleView.GroupDescriptionsSource>
</telerik:RadScheduleView>
Hey,
I have set my TextField to ReadOnly but the RadPdfViewer doesnt react to it. Im getting a pdf File that im importing using the telerik PdfFormatProvider after that im trying to set some of the fields to readOnly like this:
if (formField is TextBoxField textBox) { if (field is not null) { textBox.Value = field.ViewValue(viewMode); if (field.VarType != 0) formField.IsReadOnly = true; } }
Im sure its setting it because if i export it to a pdf the fields are set to ReadOnly but not in the Telerik PdfViewer
Thanks
Dominik
We updated our WPF Telerik controls from 2021.3.1109 to 2023.3.1114 and now our RadPDFViewer is not displaying text on some PDF documents. Please see before and after images.
Before:
After:
The file is a form fill PDF document that has been flattened. This displays correctly in Acrobat, Acrobat Reader, Chrome and Edge.
We also opened the file the 2023.3.1114 PDFViewer demo with the same results.
I want to hide YAxies when LineSeries is not showing.I have checkBoxes to show and hide LineSeries and property bool IsLineSeriesVisible.
<telerik:LineSeries ItemsSource="{Binding data, Mode=OneWay}" CategoryBinding="time" ValueBinding="value" >
<telerik:LineSeries.VerticalAxis>
<telerik:LinearAxis x:Name="yaxis" HorizontalLocation="Right" Title="{global:LocalizeKey TitleResKey, Default='value'}">
<telerik:LinearAxis.Style>
<Style TargetType="telerik:LinearAxis">
<Style.Triggers>
<DataTrigger Binding="{Binding IsLineSeriesVisible}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</telerik:LinearAxis.Style>
</telerik:LinearAxis>
</telerik:LineSeries.VerticalAxis>
</telerik:LineSeries>
And this is my xaml, dataTrigger is not working when i remove trigger it hiddes yAxis but when i try to add trigger to hide axies when series is not showing it doesn`t do anything
Hello,
I am facing application crash issue with : Out of memory exception.
While analysing, we got to know that scatterDataPoint is taking more memory
I am trying to add multiple ScatterLineSeries in telerik:RadCartesianChart.
XAML Code :
<telerik:RadCartesianChart Palette="Windows8" MouseDoubleClick="RadCartesianChart_MouseDoubleClick">
<telerik:RadCartesianChart.HorizontalAxis>
<telerik:LinearAxis Minimum="0"
Maximum="5000"/>
</telerik:RadCartesianChart.HorizontalAxis>
<telerik:RadCartesianChart.VerticalAxis>
<telerik:LinearAxis Minimum="0"
Maximum="10000" />
</telerik:RadCartesianChart.VerticalAxis>
<telerik:RadCartesianChart.Series>
<telerik:ScatterLineSeries ItemsSource="{Binding}" YValueBinding="YValue" XValueBinding="XValue" BorderBrush="Red" StrokeThickness="3" Stroke="Red" />
<telerik:ScatterLineSeries ItemsSource="{Binding}" YValueBinding="YValue" XValueBinding="XValue" BorderBrush="Red" StrokeThickness="3" Stroke="Blue" />
<telerik:ScatterLineSeries ItemsSource="{Binding}" YValueBinding="YValue" XValueBinding="XValue" BorderBrush="Red" StrokeThickness="3" Stroke="Pink" />
<telerik:ScatterLineSeries ItemsSource="{Binding}" YValueBinding="YValue" XValueBinding="XValue" BorderBrush="Red" StrokeThickness="3" Stroke="Yellow" />
<telerik:ScatterLineSeries ItemsSource="{Binding}" YValueBinding="YValue" XValueBinding="XValue" BorderBrush="Red" StrokeThickness="3" Stroke="Green" />
<telerik:ScatterLineSeries ItemsSource="{Binding}" YValueBinding="YValue" XValueBinding="XValue" BorderBrush="Red" StrokeThickness="3" Stroke="Orange"/>
<telerik:ScatterLineSeries ItemsSource="{Binding}" YValueBinding="YValue" XValueBinding="XValue" BorderBrush="Red" StrokeThickness="3" Stroke="AliceBlue" />
<telerik:ScatterLineSeries ItemsSource="{Binding}" YValueBinding="YValue" XValueBinding="XValue" BorderBrush="Red" StrokeThickness="3" Stroke="Black" />
<telerik:ScatterLineSeries ItemsSource="{Binding}" YValueBinding="YValue" XValueBinding="XValue" BorderBrush="Red" StrokeThickness="3" Stroke="Violet" />
<telerik:ScatterLineSeries ItemsSource="{Binding}" YValueBinding="YValue" XValueBinding="XValue" BorderBrush="Red" StrokeThickness="3" Stroke="Cornsilk" />
</telerik:RadCartesianChart.Series>
</telerik:RadCartesianChart>
I am updating value in specific time intervarl. Example:
We have created 1 observable collection in which we are adding plot values(xaxis,yaxis)
public class PlotInfo
{
public double XValue { get; set; }
public double YValue { get; set; }
}
ObservableCollection<PlotInfo> ColPlotInfo = new ObservableCollection<PlotInfo>();
//Initially adding 100 records in observable collection & binding values to CartesianChart series.
ArrayPlotInfo = arrayPlotInfo = new ChartViewModel.PlotInfo[100];
for (int i = 0; i<100; i++)
{
ColPlotInfo.Add(new ChartViewModel.PlotInfo() { XValue = i + 100, YValue = i + 101 });
}
On double click of chart, we are adding records on Timer_Elapsed.
private void RadCartesianChart_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
Timer timer = new Timer(100);
timer.Enabled = true;
timer.Elapsed += Timer_Elapsed;
}
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
App.Current.Dispatcher.Invoke((Action)delegate
{
ChartViewModel.PlotInfo plotInfo = new ChartViewModel.PlotInfo() { XValue = (x = x + DateTime.Now.Second), YValue = DateTime.Now.Second };
ColPlotInfo.Add(plotInfo);
});
}
Here if we do not bind to series then memory is not icreaseing it only increases when we update graph and application gets crashed.
I tried many things like –
Can anyone please help me with this? What else can I try so that memory increasing will be restrict?
Target Application : WPF
.Net Framework : 4.6.2
Telerik Version : 2017.2.503.45 (Telerik.Windows.Controls)
Hi
We are using RadBusyIndicator control for the client application, which raising the bellow exception randmoly on Production for long time.
Unfortunately it is not reproducible in development environment.
But as per the AppInsight log, assuming that happens on StoaryBoard animation as highlighted in the below style code.
Collection was modified; enumeration operation may not execute.
Type: System.InvalidOperationException
Message: Collection was modifined; enumeration operation may not execute.
Source:mscrolib
Help link:
Data: System.Collection.ListDictionaryInternal
TargetSite: System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
Stack Trace: at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
at Telerik.Windows.Controls.Animation.AnimationManager.InvkokeCallbacks(Storyboard storyboard)
at Telerik.Windows.Controls.Animation.AnimationManager.OnStoryboardCompleted(Object sender, EventArgs e)
at System.Windows.Media.Animation.Clock.FireEvent(EventPrivateKey key)
at System.Windows.Media.Animation.Clock.RaiseAccumulatedEvents()
at System.Windows.Media.Animation.TimeManager.RaiseEnqueuedEvents()
at System.Windows.Media.Animation.TimeManager.Tick()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.AnimatedRenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
And following is the style used for the busy indicator. There is no clue to find the root cause except this exception log.
<Style x:Key="RadBusyIndicatorStyle"
TargetType="{x:Type telerik:RadBusyIndicator}">
<Setter Property="BusyContent"
Value="Loading..." />
<Setter Property="IsTabStop"
Value="False" />
<Setter Property="DisplayAfter"
Value="0:0:0.1" />
<Setter Property="BorderBrush"
Value="#FFD0D0D0" />
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop Color="White"
Offset="0" />
<GradientStop Color="#A9DCDADA"
Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderThickness"
Value="1" />
<Setter Property="ProgressBarStyle">
<Setter.Value>
<Style TargetType="{x:Type telerik:RadProgressBar}">
<Setter Property="Margin"
Value="15,15,15,5" />
<Setter Property="IsIndeterminate"
Value="True" />
<Setter Property="Maximum"
Value="100" />
<Setter Property="Orientation"
Value="Horizontal" />
<Setter Property="IsTabStop"
Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type telerik:RadProgressBar}">
<Grid>
<Path x:Name="IndeterminateBackgroundDonut"
Height="44"
RenderTransformOrigin="0.5,0.5"
Stroke="#FF133E80"
Width="44">
<Path.Data>
<GeometryGroup FillRule="EvenOdd">
<EllipseGeometry Center="22,22"
RadiusY="20"
RadiusX="20" />
<EllipseGeometry Center="22,22"
RadiusY="14"
RadiusX="14" />
</GeometryGroup>
</Path.Data>
<Path.Fill>
<RadialGradientBrush>
<GradientStop Color="#FF224272"
Offset="0" />
<GradientStop Color="#FF224272"
Offset="0.921" />
<GradientStop Color="#FFC8DCFB"
Offset="0.254" />
<GradientStop Color="#FF335A95"
Offset="0.877" />
</RadialGradientBrush>
</Path.Fill>
</Path>
<Path x:Name="IndeterminateDonut"
Height="44"
RenderTransformOrigin="0.5,0.5"
Visibility="Collapsed"
Width="44">
<Path.Data>
<GeometryGroup FillRule="EvenOdd">
<EllipseGeometry Center="22,22"
RadiusY="20"
RadiusX="20" />
<EllipseGeometry Center="22,22"
RadiusY="14"
RadiusX="14" />
</GeometryGroup>
</Path.Data>
<Path.Fill>
<RadialGradientBrush Center="0.5,-0.23"
GradientOrigin="0.8,0.25"
RadiusY="0.68"
RadiusX="0.68">
<GradientStop Color="#BFFFFFFF"
Offset="0" />
<GradientStop Color="Transparent"
Offset="1" />
<GradientStop Color="#21FFFFFF"
Offset="0.65" />
</RadialGradientBrush>
</Path.Fill>
<Path.RenderTransform>
<RotateTransform />
</Path.RenderTransform>
</Path>
<Grid x:Name="ProgressBarTrack"
Height="24"
RenderTransformOrigin="0.5,0.5"
Width="24">
<Grid.Clip>
<EllipseGeometry Center="12,12"
RadiusY="12"
RadiusX="12" />
</Grid.Clip>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RenderTransform>
<RotateTransform Angle="-90" />
</Grid.RenderTransform>
<Rectangle x:Name="SkipValueSpacer" />
<Rectangle x:Name="ProgressBarIndicator"
Grid.Column="1">
<Rectangle.Fill>
<RadialGradientBrush>
<GradientStop Color="#FFCCCCCC"
Offset="1" />
<GradientStop Color="White" />
</RadialGradientBrush>
</Rectangle.Fill>
</Rectangle>
</Grid>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsIndeterminate"
Value="True">
<Trigger.EnterActions>
<BeginStoryboard x:Name="MouseOverStoryboard_BeginStoryboard">
<Storyboard RepeatBehavior="Forever">
<DoubleAnimationUsingKeyFrames BeginTime="0"
Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)"
Storyboard.TargetName="IndeterminateDonut">
<SplineDoubleKeyFrame KeyTime="0:0:1"
Value="360" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<StopStoryboard BeginStoryboardName="MouseOverStoryboard_BeginStoryboard" />
</Trigger.ExitActions>
<Setter Property="Visibility"
TargetName="IndeterminateDonut"
Value="Visible" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Setter Property="Telerik_Windows_Controls_Animation:AnimationManager.AnimationSelector">
<Setter.Value>
<Telerik_Windows_Controls_Animation:AnimationSelector>
<Telerik_Windows_Controls_Animation:FadeAnimation AnimationName="Hide"
Direction="Out"
Easing="{x:Null}"
MaxOpacity="1"
MinOpacity="0"
SpeedRatio="0"
TargetElementName="Indicator" />
<Telerik_Windows_Controls_Animation:FadeAnimation AnimationName="Show"
Direction="In"
Easing="{x:Null}"
MaxOpacity="1"
MinOpacity="0"
SpeedRatio="0"
TargetElementName="Indicator" />
</Telerik_Windows_Controls_Animation:AnimationSelector>
</Setter.Value>
</Setter>
<Setter Property="OverlayStyle">
<Setter.Value>
<Style TargetType="{x:Type Rectangle}">
<Setter Property="Fill"
Value="#88FFFFFF" />
</Style>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type telerik:RadBusyIndicator}">
<Grid Background="{TemplateBinding Background}">
<ContentControl x:Name="Content"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
IsEnabled="False"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" IsTabStop="{TemplateBinding IsTabStop}"/>
<Rectangle x:Name="Overlay"
Style="{TemplateBinding OverlayStyle}" />
<Border x:Name="Indicator"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="2"
HorizontalAlignment="Center"
MinWidth="180"
VerticalAlignment="Center"
Background="#FFBCBCBC"
BorderBrush="#FF254474"
SnapsToDevicePixels="True">
<StackPanel>
<telerik:RadProgressBar x:Name="ProgressBar"
IsIndeterminate="{TemplateBinding IsIndeterminate}"
Maximum="100"
Style="{TemplateBinding ProgressBarStyle}"
Value="{TemplateBinding ProgressValue}" />
<ContentPresenter ContentTemplate="{TemplateBinding BusyContentTemplate}"
Content="{TemplateBinding BusyContent}"
HorizontalAlignment="Center"
Margin="15,5,15,15"/>
</StackPanel>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsBusyIndicationVisible"
Value="False">
<Setter Property="Visibility"
TargetName="Indicator"
Value="Collapsed" />
<Setter Property="Visibility"
TargetName="Overlay"
Value="Collapsed" />
<Setter Property="IsIndeterminate"
TargetName="ProgressBar"
Value="False" />
<Setter Property="IsEnabled"
TargetName="Content"
Value="True" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Any suggestion? And thanks in advance!
I am using a RadCardView for the first time, and nothing is displaying. I have followed the online sample code, and even replaced the Rad Card View with a list box to make sure the bindings are working, and still nothing appears to be displaying in the area where the CardView (previously a list box) should display. Here is part of my code:
<telerik:RadCardView x:Name="cardView" Margin="5"Hi:
How can I set the data Form to show required fields validation message based on annotations to appear on the right of the field like this image;