Hello everyone,
I am currently stuck on a problem where edited appointments seem to get reset during the edit event chain.
Up until AppointmentSaving, everything looks normal. I set some breakpoints in my appointment's Start and End properties and both get updated to the new time. However, shortly after AppointmentSaving but before AppointmentEdited, the appointment's properties get reset to their previous state.
Through the aforementioned breakpoints, I was able to trace my problem down to the ScheduleView's EditableObjectBase class, more specifically its EndEdit() method, where a backup of the appointment's original state seems to be restored. Strangely though, CancelEdit() does not restore the state and leaves Start and End as is (in their edited state). Is this supposed to happen? I could not find any information about that behavior in the docs.

Hi, In telerik For my scatter point data (dynamically created in c#), I want to assign colors to each point dynamically by Point Template
as
var chart = new Telerik.Windows.Controls.RadCartesianChart();
ScatterPointSeries scatterSeries = new ScatterPointSeries();
for (int i = 0; i < 100; i++)
{
ScatterDataPoint point = new ScatterDataPoint();
point.XValue = xvaluelist[i];
point.YValue = yvaluelist[i];
scatterSeries.DataPoints.Add(point);
Brush color = new SolidColorBrush(colorlist[i]);
Ellipse ellipse = new Ellipse();
ellipse.Fill = color;
ellipse.Stroke = color;
ellipse.Height = 10;
ellipse.Width = 10;
DataTemplate datatemplate = new DataTemplate(typeof(Ellipse));
FrameworkElementFactory element= new FrameworkElementFactory(typeof(Ellipse));
element.SetValue(,); //Issue is here
datatemplate.VisualTree = element;
scatterSeries.PointTemplates.Add(datatemplate);
}
chart.Series.Add(scatterSeries);
element.SetValue accept two inputs that are dependencyproperty dp, object value

Hi, In telerik For my scatter point data (dynamically created in c#), I want to assign colors to each point dynamically by Point Template
as
var chart = new Telerik.Windows.Controls.RadCartesianChart();
ScatterPointSeries scatterSeries = new ScatterPointSeries();
for (int i = 0; i < 100; i++)
{
ScatterDataPoint point = new ScatterDataPoint();
point.XValue = xvaluelist[i];
point.YValue = yvaluelist[i];
scatterSeries.DataPoints.Add(point);
Brush color = new SolidColorBrush(colorlist[i]);
DataTemplate datatemplate = new DataTemplate(typeof(Ellipse));
FrameworkElementFactory element= new FrameworkElementFactory(typeof(Ellipse));
element.SetValue(,); //Issue is here
datatemplate.VisualTree = element;
scatterSeries.PointTemplates.Add(datatemplate);
}
chart.Series.Add(scatterSeries);
element.SetValue accept two inputs that are dependencyproperty dp, object value
What should be dependency property and object value in this case so that I could assign colors to each point as from my color list.

Is it possible to make the grouping so that it would be more like this instead of them side by side.:
Group 1 Header
Tiles wrapped
Group 2 Header
Tiles wrapped
Group 3 Header

Hello
In a release of WPF after 2015.2.728 (up to and including 2020.2.617) the ability to programatically set the DisplayIndex of a GridViewColumn was broken, in what seems to be a bug (it used to work fine, and I'm not sure what behaviour you could achieve with this bug in place). I haven't pinpointed the release, as a lot of releases have happened during that time!
I've attached a simple example which demonstrates this bug, you just have to change the boolean constant in the code behind file from `false` to `true`, and you'll see that the group header no longer shows. If you go back to release 2015.2.728 then this works, but now it only works if you set DisplayIndex to -1 (anything else causes an argument exception, as there's a mismatch to the number of columns, which makes sense). If you don't have the header group then you can obviously change the DisplayIndex as required, but as soon as you do, it breaks the header grouping.
I'd post the code solution if I could, but it's pretty simple, you don't even need the public class in my code behind, that's there just to make the column group header obvious.
Thanks!
I have an application with a UserControl that contains a ListBox. The DataTemplate of the ListBox adds a button to each item. The ListBox is inside a BusyIndicator. If I set IsBusy to true from a command bound to a ListBox item the BusyIndicator does not show. If I set IsBusy from the constructor of the UserControl it does show. I am hoping you can tell me why it doesn't show from the command bound from the button.
Here is the xaml for the UserControl:
<UserControl x:Class="BusyIndicatorIssue.WidgetView" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:local="clr-namespace:BusyIndicatorIssue" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> <UserControl.DataContext> <local:WidgetViewModel/> </UserControl.DataContext> <UserControl.Resources> <local:WidgetView x:Key="topLevelParent"/> <DataTemplate x:Key="WidgetListBoxDataTemplate"> <DockPanel> <telerik:RadPathButton DockPanel.Dock="Right" PathGeometry="{telerik:RadGlyph Glyph=}" Command="{Binding Source={StaticResource topLevelParent}, Path=DataContext.RunLongProcessCommand}" CommandParameter="{Binding}"/> <TextBlock DockPanel.Dock="Left" FontSize="2" VerticalAlignment="Center" Text="{Binding Name}"/> </DockPanel> </DataTemplate> </UserControl.Resources> <telerik:RadBusyIndicator BusyContent="{Binding BusyContent}" IsBusy="{Binding IsBusy}" IsIndeterminate="True"> <telerik:RadListBox x:Name="WidgetListBox" Padding="8" ItemsSource="{Binding Widgets, Mode=TwoWay}" ItemTemplate="{StaticResource WidgetListBoxDataTemplate}"/> </telerik:RadBusyIndicator></UserControl>
Here is the ViewModel code:
using System.Collections.ObjectModel;using System.ComponentModel;using System.Windows;using Telerik.Windows.Controls;namespace BusyIndicatorIssue{ public class WidgetViewModel : ViewModelBase { public WidgetViewModel() { Widgets = new ObservableCollection<Widget> { new Widget("Widget 1"), new Widget("Widget 2"), new Widget("Widget 3"), new Widget("Widget 4"), new Widget("Widget 5"), new Widget("Widget 6"), new Widget("Widget 7"), new Widget("Widget 8"), new Widget("Widget 9") }; RunLongProcessCommand = new DelegateCommand(OnRunLongProcessCommandExecuted); //BusyContent = "Doing Something"; //IsBusy = true; } public DelegateCommand RunLongProcessCommand { get; set; } public ObservableCollection<Widget> Widgets { get; set; } public const string IsBusyPropertyName = "IsBusy"; private bool _isBusy; public bool IsBusy { get => _isBusy; set { if (_isBusy != value) { _isBusy = value; RaisePropertyChanged(); } } } public const string BusyContentPropertyName = "BusyContent"; private string _busyContent = default!; public string BusyContent { get => _busyContent; set { if (_busyContent != value) { _busyContent = value; RaisePropertyChanged(); } } } private void OnRunLongProcessCommandExecuted(object parameter) { var widget = (Widget)parameter; IsBusy = true; BusyContent = $"Doing something with {widget}"; var backgroundWorker = new BackgroundWorker(); backgroundWorker.DoWork += DoWork; backgroundWorker.RunWorkerCompleted += RunWorkerCompleted; _ = MessageBox.Show($"About to do something with {widget.Name}."); backgroundWorker.RunWorkerAsync(widget); } private void DoWork(object sender, DoWorkEventArgs e) { var widget = (Widget)e.Argument; System.Threading.Thread.Sleep(3000); _ = MessageBox.Show($"Done with {widget.Name}."); } private void RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { var backgroundWorker = sender as BackgroundWorker; if (backgroundWorker is not null) { backgroundWorker.DoWork -= DoWork; backgroundWorker.RunWorkerCompleted -= RunWorkerCompleted; InvokeOnUIThread(() => { IsBusy = false; }); } } }}
Here is the MainWindow xaml that hosts the UserControl:
<Window x:Class="BusyIndicatorIssue.MainWindow" xmlns:local="clr-namespace:BusyIndicatorIssue" mc:Ignorable="d" Height="300" Width="400" Title="MainWindow"> <DockPanel> <local:WidgetView DockPanel.Dock="Top" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> </DockPanel></Window>
This is the simple model I am using for testing:
namespace BusyIndicatorIssue{ public class Widget { public Widget(string name) { Name = name; } public string Name { get; set; } }}
I was able to get the BusyIndicator to show by calling a command bound to a button placed directly in the main content of the UserControl. But I really need this application to have the buttons on each ListItem if possible.
Regards,
Don
Hello,
I set up my telerik nuget server according to your documentation.
But, I can't find the Ui.for.Wpf.45 package.
I just find the .Wpf.netCore package.
Can you help me.
Thank you
best regards
Markus
Hi,
I just started valuating RADGrdiView.
grid is binded to a datatable.
-When editing a cell in a row and then moving to the next row, is there a way to not automatically going into edit mode ?
-When on the last row, is there a way to move to the new(which is at the button) without pressing (Insert) or clicking on the new row using the mouse? meaning is it possible to navigate to the new row using the keyboard arrows for example.
Thanks

01.<telerik:RadDocking x:Name="dockEngineering" 02. Grid.Row="1"03. Margin="0,0,0,0" 04. BorderThickness="0"05. Padding="0"06. Background="{StaticResource LightGrayBrush}"07. x:FieldModifier="public">08. <telerik:RadDocking.DocumentHost>09. <telerik:RadSplitContainer x:Name="MiddleContainer">10. <telerik:RadPaneGroup x:Name="MiddleGroup">11. <telerik:RadPane x:Name="ProgressPane" Header="Progress View" >12. <Grid Name="grdProgress">13. <local:ProgressView DataContext="{Binding ProgressViewModel}"/>14. </Grid>15. </telerik:RadPane>16. </telerik:RadPaneGroup>17. </telerik:RadSplitContainer>18. </telerik:RadDocking.DocumentHost>19.</telerik:RadDocking>I've got a RadGridView that contains a RowStyleSelector and an InputBindings section. The RowStyleSelector has 2 conditions, one checking if a value is true and one checking if a value is false. In the false case, the only thing being done is setting the style to be based on the existing GridViewRowStyle with no changes. In the true case, the same happens but the background color is changed. When the false case is used, my InputBindings work fine. Once the true case is used, though, my InputBindings stop working. (Related, I also use behaviors via Microsoft.Xaml.Behaviors.Wpf, with one of them being to bind a command to the MouseDoubleClick event, and that event also stops firing when the above happens with the InputBindings.)
I had set a breakpoint in my code to see if it the command was getting hit and it would only be hit when the false case happened above.
In the below example, assume that Items contains a Cond boolean property:
<telerik:RadGridView GroupRenderMode="Flat" IsReadOnly="True" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Items, Mode=OneWay}" RowIndicatorVisibility="Collapsed" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" ShowGroupPanel="False"> <telerik:RadGridView.RowStyleSelector> <telerik:ConditionalStyleSelector> <telerik:StyleRule Condition="Cond"> <Style BasedOn="{StaticResource GridViewRowStyle}" TargetType="{x:Type telerik:GridViewRow}"> <Setter Property="Background" Value="Orange"/> </Style> </telerik:StyleRule> <telerik:StyleRule Condition="!Cond"> <Style BasedOn="{StaticResource GridViewRowStyle}" TargetType="{x:Type telerik:GridViewRow}"/> </telerik:StyleRule> </telerik:ConditionalStyleSelector> </telerik:RadGridView.RowStyleSelector> <telerik:RadGridView.InputBindings> <KeyBinding Key="Enter" Command="{Binding SelectItemCommand, Mode=OneTime}" /> <KeyBinding Key="Tab" Command="{Binding SelectItemCommand, Mode=OneTime}" /> </telerik:RadGridView.InputBindings></telerik:RadGridView>