Hi I have two RadGridView , first one consists of basic controls it works well.
However, the other thing is that the page is created, but the controls are not displayed at all.
the only difference is that the second radgridview using CellTemplate.
<telerik:GridViewDataColumn HeaderCellStyle="{StaticResource CustomGridViewHeaderCellStyle}" Header="{Binding TimeFirst}" Width="0.8*" HeaderTextAlignment="Center" ColumnGroupName="L1CODE">
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<Grid>
<telerik:RadProgressBar Height="20" Minimum="0" Maximum="3600" Value="{Binding L1CodeBeforeCnt3}" Style="{StaticResource l1code3progressbar}">
</telerik:RadProgressBar>
<TextBlock Text="{Binding L1CodeBeforeCnt3}" Margin="5 0">
</TextBlock>
</Grid>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
and i used radpager like this.
<telerik:RadGridView
ItemsSource="{Binding PagedSource, ElementName=radDataPager}"
> <telerik:RadDataPager x:Name="radDataPager"
Source="{Binding SignalCntData}"
PageSize="30"
/>this code works well in consists of basic controls.
is it a problem with styling the progressbar? but without pager, just radgridview, there are no problem..
But I must display more than 150 rows, I must use RadPager somebody help..
Hello,
I created an attached property that scrolls into the selected item when the SelectedItem changed (using the public method of the RadGridView).
This behavior was added because the selected item may be changed from other view. The RadGridView multi selection is enabled.
I noticed that during grouping, the scrolling into the selected item works, but the row might be collpased when the group IsExpanded property is false.
There is an easy way to expand the group?
I want to detect the group by O(1) and then update the IsExpanded property to True.
I am wondering what will happend if there are many groups? should I expand all of them or only the last one ?
I will be glad to know the easiest way for this.
* The performance is extremelly important so we should take into consideration that maybe the user selects a lot of items (let's say 250 out of 10000) so the SelectedItem will change a lot.
Hello,
In the RichTextBox, in the Table, what is the best way to check that TableRow.Height is changing?
How to prevent the change or set specific value?
Thank you.

I want to create a RadFixedDocument with a table (see screenshot). Thereby the table is created dynamically:
Table headerTable = new Table();
Telerik.Windows.Documents.Fixed.Model.Editing.Border headerBorder = new Telerik.Windows.Documents.Fixed.Model.Editing.Border(1, BorderStyle.Single, new RgbColor(217, 217, 217));
headerTable.DefaultCellProperties.Borders = new TableCellBorders(headerBorder, headerBorder, headerBorder, headerBorder);
headerTable.DefaultCellProperties.Padding = new Thickness(5, 10, 5, 10);
TableRow headerRow = headerTable.Rows.AddTableRow();
TableCell vacationEntitlementHeaderCell = headerRow.Cells.AddTableCell();
vacationEntitlementHeaderCell.PreferredWidth = _maxWidth-100;
vacationEntitlementHeaderCell.Background = new RgbColor(217, 217, 217);
Block vacationEntitlementText = vacationEntitlementHeaderCell.Blocks.AddBlock();
SetTextProperties(vacationEntitlementText, new RgbColor(0, 0, 0), 12, new FontFamily("Verdana"), new RgbColor(217, 217, 217));
vacationEntitlementText.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Left;
vacationEntitlementText.VerticalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.VerticalAlignment.Center;
vacationEntitlementText.InsertText("Urlaubsanspruch: " + _localViewModel.Document.VacationEntitlement.ToString());
TableCell vacationPlannedHeaderCell = headerRow.Cells.AddTableCell();
vacationPlannedHeaderCell.PreferredWidth = _maxWidth-100;
vacationPlannedHeaderCell.Background = new RgbColor(217, 217, 217);
Block vacationPlannedText = vacationPlannedHeaderCell.Blocks.AddBlock();
SetTextProperties(vacationPlannedText, new RgbColor(0, 0, 0), 12, new FontFamily("Verdana"), new RgbColor(217, 217, 217));
vacationPlannedText.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Left;
vacationPlannedText.VerticalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.VerticalAlignment.Center;
vacationPlannedText.InsertText("Geplant: " + _localViewModel.Document.VacationDays.ToString());
TableCell vacationFreeHeaderCell = headerRow.Cells.AddTableCell();
vacationFreeHeaderCell.PreferredWidth = _maxWidth-100;
vacationFreeHeaderCell.Background = new RgbColor(217, 217, 217);
Block vacationFreeText = vacationFreeHeaderCell.Blocks.AddBlock();
SetTextProperties(vacationFreeText, new RgbColor(0, 0, 0), 12, new FontFamily("Verdana"), new RgbColor(217, 217, 217));
vacationFreeText.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Left;
vacationFreeText.VerticalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.VerticalAlignment.Center;
vacationFreeText.InsertText("Freie Urlaubstage: " + _localViewModel.Document.FreeVacationsDays.ToString());
TableCell workTimeColorCell = headerRow.Cells.AddTableCell();
workTimeColorCell.PreferredWidth = 150;
workTimeColorCell.Background = new RgbColor(217, 217, 217);
Block workTimeColorText = workTimeColorCell.Blocks.AddBlock();
SetTextProperties(workTimeColorText, new RgbColor(85, 85, 85), 24, new FontFamily("Verdana"), new RgbColor(85, 85, 85));
workTimeColorText.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Left;
workTimeColorText.VerticalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.VerticalAlignment.Center;
workTimeColorText.InsertText(" ");
TableCell WorkTimeHeaderCell = headerRow.Cells.AddTableCell();
WorkTimeHeaderCell.PreferredWidth = _maxWidth;
WorkTimeHeaderCell.Background = new RgbColor(217, 217, 217);
Block workTimeText = WorkTimeHeaderCell.Blocks.AddBlock();
SetTextProperties(workTimeText, new RgbColor(0,0,0), 12, new FontFamily("Verdana"), new RgbColor(217, 217, 217));
workTimeText.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Left;
workTimeText.VerticalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.VerticalAlignment.Center;
workTimeText.InsertText("Arbeitstage mit hinterlegter Sollarbeitszeit");
_editor.Position.Translate(_defaultLeftIndent, 80);
_editor.DrawBlock(headerTable, new Size(_maxWidth, double.PositiveInfinity));
Table table = new Table();
Telerik.Windows.Documents.Fixed.Model.Editing.Border border = new Telerik.Windows.Documents.Fixed.Model.Editing.Border(1, BorderStyle.Single, new RgbColor(204, 204, 204));
table.DefaultCellProperties.Borders = new TableCellBorders(border, border, border, border);
table.DefaultCellProperties.Padding = new Thickness(5, 10, 5, 10);
TableRow valueHeaderRow = table.Rows.AddTableRow();
TableCell monthCell = valueHeaderRow.Cells.AddTableCell();
monthCell.PreferredWidth = 150;
monthCell.Background = new RgbColor(217, 217, 217);
Block month = monthCell.Blocks.AddBlock();
SetTextProperties(month, new RgbColor(0, 0, 0), 12, new FontFamily("Verdana"), new RgbColor(217, 217, 217), true);
month.InsertText("Monat");
for (int i = 1; i < 32; i++)
{
TableCell dayCell = valueHeaderRow.Cells.AddTableCell();
dayCell.PreferredWidth = 50;
dayCell.Background = new RgbColor(217, 217, 217);
Block day = dayCell.Blocks.AddBlock();
SetTextProperties(day, new RgbColor(0, 0, 0), 12, new FontFamily("Verdana"), new RgbColor(217, 217, 217), true);
day.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Center;
day.InsertText(i.ToString());
}
foreach (var monthItem in _localViewModel.Document.Months)
{
TableRow monthRow = table.Rows.AddTableRow();
TableRow appointmentRow = table.Rows.AddTableRow();
TableCell monthHeaderCell = monthRow.Cells.AddTableCell();
monthHeaderCell.PreferredWidth = 120;
monthHeaderCell.Background = new RgbColor(217, 217, 217);
monthHeaderCell.RowSpan = 2;
Block monthName = monthHeaderCell.Blocks.AddBlock();
SetTextProperties(monthName, new RgbColor(0, 0, 0), 12, new FontFamily("Verdana"), new RgbColor(217, 217, 217));
monthName.VerticalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.VerticalAlignment.Center;
monthName.InsertText(monthItem.Name);
foreach (var dayItem in monthItem.Days)
{
if (dayItem.Plan == 0)
{
RgbColor background = new RgbColor(255, 255, 255);
TableCell monthDayCell = monthRow.Cells.AddTableCell();
Block dayText = monthDayCell.Blocks.AddBlock();
monthDayCell.PreferredWidth = 50;
if (dayItem.Template == Templates.U)
{
background = new RgbColor(0, 153, 188);
}
monthDayCell.Background = background;
SetTextProperties(dayText, new RgbColor(0, 0, 0), 8, new FontFamily("Verdana"), background);
dayText.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Center;
dayText.InsertText(dayItem.WeekdayStringShort.ToUpper());
TableCell appointmentDayCell = appointmentRow.Cells.AddTableCell();
//Block appointmentText = appointmentDayCell.Blocks.AddBlock();
appointmentDayCell.PreferredWidth = 50;
appointmentDayCell.Background = FormatAppointment(dayItem.Date);
//SetTextProperties(appointmentText, new RgbColor(0, 0, 0), 0, new FontFamily("Verdana"), new RgbColor(255, 255, 255));
//appointmentText.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Center;
//appointmentText.InsertText(String.Empty);
}
else
{
TableCell monthDayCell = monthRow.Cells.AddTableCell();
RgbColor rgbColorBackground = new RgbColor(85, 85, 85);
RgbColor rgbColorForeground = new RgbColor(255, 255, 255);
monthDayCell.Background = rgbColorBackground;
Block dayText = monthDayCell.Blocks.AddBlock();
monthDayCell.PreferredWidth = 50;
SetTextProperties(dayText, rgbColorForeground, 8, new FontFamily("Verdana"), rgbColorBackground);
dayText.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Center;
dayText.InsertText(dayItem.WeekdayStringShort.ToUpper());
TableCell appointmentDayCell = appointmentRow.Cells.AddTableCell();
//Block appointmentText = appointmentDayCell.Blocks.AddBlock();
appointmentDayCell.PreferredWidth = 50;
appointmentDayCell.Background = FormatAppointment(dayItem.Date);
//SetTextProperties(appointmentText, new RgbColor(0, 0, 0), 0, new FontFamily("Verdana"), new RgbColor(255, 255, 255));
//appointmentText.HorizontalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.HorizontalAlignment.Center;
//appointmentText.InsertText(String.Empty);
}
}
}
_editor.Position.Translate(_defaultLeftIndent, 130);
_editor.DrawBlock(table, new Size(_maxWidth, double.PositiveInfinity));
}How can I set the height of the empty row below each day?
Hello. I faced the problem when i am trying to get Route from BinRestMapProvider, using method CalculateRouteAsync, it returns status code 400 and message like this: "This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.","errorDetails":["One or more parameters are not valid.","waypoint: One or more locations specified in the waypoint parameter are invalid or require more information. : 42,6957539183824;23,3327663758679"],"resourceSets":[],"statusCode":400,"statusDescription":"Bad Request" "
I just followed the example at:
https://docs.telerik.com/devtools/wpf/controls/radmap/features/providers/bing-rest-map-provider/routing
I guess problem is in example 4 of this doc: "request.Waypoints.Add(point.ToString());"
I hope someone can help me with it.
Does the vulnerability that was in your MOVEit software also exist in the Telerik software?
Is it currently safe to download software from your website?

I want to encrypt a zip archive.
using (FileStream stream = File.Create(Filepath + Filename))
{
DefaultEncryptionSettings encryptionSettings = new DefaultEncryptionSettings();
encryptionSettings.Password = "123";
using (ZipArchive archive = new ZipArchive(stream, ZipArchiveMode.Create, false, null, null, encryptionSettings))
{
using (ZipArchiveEntry entry = archive.CreateEntry("document.txt"))
{
StreamWriter writer = new StreamWriter(entry.Open());
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(writer.BaseStream, this);
}
}
}Hello,
After reading multiple questions in this forum regarding why the RadGridView is not refreshing when an existing item is updated, I am developing the refresh mechanism. I tried your suggest (calling CollectionChanged.Reset) but this solution is not good for us because when we call CollectionChanged the RadGridView is updated and also a lot of elements are drawn in a screen (thousand of elements and it cost a lot of performance).
So my solution is using a timer with refresh interval of 1 second which will refresh all the subscribed RadGridViews.
* I used WeakRefereces to avoid Memory Leaks.
In the distpatcher timer I do the following code:
if(radGridView == null || !radGridView.IsVisible) return;
var isRefreshRequired = radGridView.GroupDescriptors.Count >0 || radGridView.FilterDescriptors.Count>0 || radGridView.SortDescriptors.Count>0
if(isRefreshRequired)
{
var collectionView = CollectionViewSource.GetDefaultView(radGridView.ItemSource);
collectionView.Refresh?();
}
As mentioned, this code guarantees that only the view (RadGridView) is refresh and not the other elements of the SourceCollection.
I need your help with the following:
1. Only when there is a group and I scrolled down, after refresh the grid jumps to top (I couldn't reproduce when sorting or filter is enabled).
2. There is any good way to really know if the RadGridView is shown on screen (maybe it is visible but hidden in other tab), I need a method with fast access because I may check around 15 grids every second and I want to refresh only the required grids.
3. I tried to refresh the radGridView.Items instead of radGridViewItemsSource.
I expected this to work beause Items holds the items after grouping/filter/sorting. Unfortuneatly ,it doesn't work.
There is any way to refresh your internal view instead of the SourceCollection view that is bound to ItemSource?
The problem is that CollectionChanged on the view, triggers other code on my side that it will be good to skip for this case.
EDIT:
* I figured out that if I have a grid with 500 elements with two groups of 250 rows and one group is expanded then the application is almost freeze, the refresh is killing the performance. I think that my solution is better than Collection Reset so I don't know how to solve this :(
* Regarding point one, I think that the grid jumps because the Panel Unit is set to Content. I can't switch to Pixel because it will cause bad performance.
* I noticed that you have the method Reset for GroupDescriptors and SortDescriptors, the performance is the same. I taught that you maybe manage an internal caching and have some improvements there.

I have tried to create two RadNumericUpDown controls, first one has a minimum value and second one has a maximum value. I thought that I can bind automatically minimum value as Minimum for second control, but here is the problem.
Problem is happens when Minimum value of RadNumericUpDown control was updated, but updated Value of second control was not bound to source.
<StackPanel>
<telerik:RadNumericUpDown Value="{Binding MinValue, Mode=TwoWay}"/> //changes here are not updatind value of second control
<telerik:RadNumericUpDown Value="{Binding MaxValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Minimum="{Binding MinValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>