Telerik Forums
UI for WPF Forum
3 answers
118 views

I have a MVVM RadDiagram setup that binds data via SerializableGraphSourceBase<T, U>. In that setup:

  • When I change the Visibility property of any node object directly in RadDiagram.Items, the corresponding wrapper IShape object in RadDiagram.Shapes also updates its Visibility property. The node is visible/hidden/collapsed in on the graph's canvas.
  • When I change the Visibility property of any edge object in RadDiagram.Items, the corresponding IConnection wrapper in RadDiagram.Connections does not update its visibility property. The connection is always drawn on the canvas.

What to do?

Dinko | Tech Support Engineer
Telerik team
 answered on 24 May 2017
1 answer
1.1K+ views

I have a RadComboBox in WPF that is set to allow for multiple selection.  I can manually select multiple items and I can get the set of selected items but I can't figure out how to programmatically select multiple items.   The value in the RadComboBox is bound to a DataTable with the value and text both being linked to the same column.  Sample values for the data are (00, 01, 02, 03, 04, 05, 06, 07).  How can I take a comma delimited string (example: "01, 03, 06") and select the those items from that string in the RadComboBox?

<DataTemplate x:Key="MultipleSelectionBoxTemplateDept">
<TextBlock Text="{Binding ElementName=cmbDept, Path=SelectedItems.Count, StringFormat='Selected Items Count: {0}'}" Foreground="Red" FontWeight="Bold" />
</DataTemplate>

<telerik:RadComboBox Name="cmbDept" AllowMultipleSelection="True" IsEditable="False" Width="250" Height="25" Margin="0,0,0,0" VerticalAlignment="Top" ItemsSource="{Binding}" MultipleSelectionBoxTemplate="{StaticResource MultipleSelectionBoxTemplateDept}" OpenDropDownOnFocus="True"></telerik:RadComboBox>

 

C# code:

cmbDept.DataContext = dtDeptList.DefaultView;
cmbDept.DisplayMemberPath = dtDeptList.Columns[0].ToString();
cmbDept.SelectedValuePath = dtLeadList.Columns[0].ToString();

Richard
Top achievements
Rank 1
 answered on 24 May 2017
4 answers
97 views
Hello,

I have overriden  the EditRecurrenceTemplate in order to force that every appointment with recurrence must have a RecursUntil Date.

What I have done, in the RangeGroup, is removing the radiobuttons that I won't use:

"NoEndDate"

"EndAfter"

So I only have the "EndBy" radiobutton

If I'm editing a recurrence and I check (manually) the radiobutton, everything works fine. Exactly what I want is to extract :

Appointment.RecurrenceRule.Pattern.RecursUntil

but I don't want to check the radiobutton everytime, so I have tried changing the radiobutton for a label or setting the radiobutton IsChecked property to True, but with both options, I get:

Appointment.RecurrenceRule.Pattern.RecursUntil= null

How can i check that button programmatically?

Or maybe made it set but setting the Appointment.RecurrenceRule.Pattern.RecursUntil to the value?



Thanks in advance

Hello,

I have overriden  the EditRecurrenceTemplate in order to force that every appointment with recurrence must have a RecursUntil Date.

What I have done, in the RangeGroup, is removing the radiobuttons, so I won't use:

"NoEndDate"

"EndAfter"

 

So I only have the "EndBy" radiobutton

 

If I'm editing a recurrence and I check (manually) the radiobutton, everything works fine. Exactly what I want is to extract :

Appointment.RecurrenceRule.Pattern.RecursUntil

but I don't want to check the radiobutton everytime, so I have tried changing the radiobutton for a label or setting the radiobutton IsChecked property to True, but with both options, I get:

Appointment.RecurrenceRule.Pattern.RecursUntil= null

 

How can i check that button programmatically?

Or maybe made it set but setting the Appointment.RecurrenceRule.Pattern.RecursUntil to the value?

 

Thanks in advance

 

 

 

 

Jose
Top achievements
Rank 1
 answered on 24 May 2017
1 answer
127 views

Using MVVM I have a property to hold the value to be displayed in the ColumnGroup Text property

This fails to display the required text.

<telerik:GridViewColumnGroup  Name="ThisYearA" Header="{Binding Path=DataContext.lThisYearActual, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type telerik:RadGridView}}}" />

Changing the x:Type to the Page also fails.

I have also bound the text to a hidden textblock, this also fails to display in the ColumnGroup

<telerik:GridViewColumnGroup  Name="ThisYearF" Binding ElementName=txtLastYearActual}" />

The textblock txtLastYearActual correctly displays the content.

 

Mark
Top achievements
Rank 1
 answered on 24 May 2017
16 answers
557 views

Hi,

I have a tree structure here with currently 240,000 nodes. The nodes inisde the view model are placed in RadObservableCollection's so that Suspend/ResumeNotiffications is used during initialization. All nodes are initialized in expanded state. The first scrolling tests were horrible. But then I discovered AutoExpandItems="True" which solved the scrolling issue.

But now I have a problem when the root RadObservableCollection of the tree is cleared. The profiled stack trace can be seen it the attachment. The UI thread of the application blocks for 40 seconds, because the TreeListView performs a sort, collapse and reset view on each (dead) node.

Currently clearing the root node collection costs 8x more time than setting up (asynchronous) and displaying the whole structure (reset). Can I do anything about it?

Stefan
Telerik team
 answered on 24 May 2017
3 answers
1.7K+ views

I get following exception when I try to open some PDF document in RadPdfViewer.
The file can be properly open in AdobeReader.
System.Windows.Media.Imaging.WriteableBitmap..ctor is called with size 7016 x 20872 pixels

Exception message:
System.Runtime.InteropServices.COMException: 'MILERR_WIN32ERROR (WyjÄ…tek od HRESULT: 0x88980003)'

with callstack:

w System.Windows.Media.Imaging.WriteableBitmap..ctor(Int32 pixelWidth, Int32 pixelHeight, Double dpiX, Double dpiY, PixelFormat pixelFormat, BitmapPalette palette)
   w Telerik.Windows.Media.Imaging.RadBitmap..ctor(Int32 width, Int32 height, Int32[] pixels)
   w Telerik.Windows.Documents.Fixed.UI.UIElementsHelper.CreateImageSource(RadFixedPage page, ImageResourceKey key, ImageSource source)
   w Telerik.Windows.Documents.Fixed.UI.UIElementsHelper.ImageLoader_WorkCompleted(Object sender, WorkCompletedEventArgs e)
   w Telerik.Windows.Documents.Utilities.ResourceLoader.OnWorkCompleted(WorkCompletedEventArgs args)
   w Telerik.Windows.Documents.Utilities.ResourceLoader.Worker_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)
   w System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
   w System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
   w System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   w System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   w System.Windows.Threading.DispatcherOperation.InvokeImpl()
   w System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   w MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   w System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   w System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   w System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   w MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   w System.Windows.Threading.DispatcherOperation.Invoke()
   w System.Windows.Threading.Dispatcher.ProcessQueue()
   w System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   w MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   w MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   w System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   w System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   w System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   w MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   w MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   w System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   w System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   w System.Windows.Application.RunDispatcher(Object ignore)
   w System.Windows.Application.RunInternal(Window window)
   w System.Windows.Application.Run(Window window)
   w System.Windows.Application.Run()

Mihail
Telerik team
 answered on 23 May 2017
8 answers
1.7K+ views
How can I apply a data-driven style to show a strikethrough (or strikeout) style to an entire row?

Depending on a column value, I can succesfully apply font styling such as italic and colour (both font styles) but how to do strikethrough which is a text decoration?
Dilyan Traykov
Telerik team
 answered on 23 May 2017
3 answers
129 views

I have a grid bound to a list of a view model class I will call "A". Class A implements INotifyDataErrorInfo. As each property of A is set, the value of the changed property is validated, the set of errors is updated, and the ErrorChanged event is fired for that property--this is a pretty typical class that implements INotifyDataErrorInfo.

When the user clicks the New Item Row, I set some initial property values in the AddingNewDataItem event. Then when the new data row displays before the user has begun to type in the first field, a few fields are already highlighted with errors. After adding some logging, I found that the data grid is making a copy of the object I create in the AddingNewDataItem handler. Each property in this copy is set which causes validation to fire off, and some fields show errors when initially shown to the user. I don't want this. I only want to show errors after the user edits the field or attempts to commit a row with errors.

I also noticed the grid control calls HasErrors() on the original source object made in the event handler, not the copy it makes, which seems odd to me.

Is this the expected behavior? I want to display a newly inserted row with no errors and some custom initial values, but that copy the grid makes sorta ruins the process. How do I work around this?

Below is my log. It begins with the hash code of the ViewModel

// NOTE: All this occurs on insert, no user edits
// These first validation calls are in the AddingNewDataItem event when I initialize some properties.
57073170: ValidateProperty JobId, 0 errors.
57073170: ValidateProperty Quantity, 0 errors.
57073170: ValidateProperty State, 0 errors.
57073170: ValidateProperty Part, 0 errors.
57073170: ValidateProperty PartId, 1 errors.
57073170: ClearErrors() //clear errors so that the fields don't indicate errors until the user sets them or the row is validated
// Done with AddingNewDataItem event handler in my code
 
57073170: HasErrors() returned False
57073170: HasErrors() returned False
57073170: HasErrors() returned False
57073170: GetErrors(State) returned empty list
57073170: HasErrors() returned False
57073170: HasErrors() returned False
57073170: GetErrors(State) returned empty list
57073170: GetErrors(PartNumber) returned empty list
57073170: GetErrors(Quantity) returned empty list
57073170: GetErrors(Length) returned empty list
57073170: GetErrors(ComponentType) returned empty list
57073170: GetErrors(Label) returned empty list
57073170: GetErrors(ElevationId) returned empty list
57073170: HasErrors() returned False
57073170: HasErrors() returned False
57073170: HasErrors() returned False
57073170: HasErrors() returned False
 
//NOTE: looks like new object is now created by RadGridView after this point?
13218022: ValidateProperty PartId, 1 errors.
13218022: ValidateProperty PartNumber, 0 errors.
13218022: ValidateProperty Description, 0 errors.
13218022: ValidateProperty Quantity, 0 errors.
13218022: ValidateProperty ComponentType, 0 errors.
13218022: ValidateProperty Label, 1 errors. // This error shows in the UI clicking Add Item Row
13218022: ValidateProperty ElevationId, 1 errors. // This error shows in the UI after clicking Add Item Row
13218022: ValidateProperty JobId, 0 errors.
13218022: ValidateProperty KeepAlways, 0 errors.
13218022: ValidateProperty Length, 0 errors.
13218022: ValidateProperty Part, 0 errors.
13218022: ValidateProperty PartId, 1 errors.
13218022: ValidateProperty Id, 0 errors.
13218022: ValidateProperty State, 0 errors.
 
// HasErrors is called on the original and not the new object...
57073170: HasErrors() returned False
57073170: HasErrors() returned False
57073170: HasErrors() returned False
57073170: HasErrors() returned False
57073170: HasErrors() returned False
57073170: GetErrors(PartNumber) returned empty list
57073170: HasErrors() returned False
57073170: HasErrors() returned False
57073170: GetErrors(PartNumber) returned empty list
57073170: GetErrors(PartNumber) returned empty list
57073170: GetErrors(PartNumber) returned empty list

 

Stefan
Telerik team
 answered on 23 May 2017
5 answers
879 views
An input control will 'dim' it's background color when IsReadOnly is set to true. This, unfortunately, have the undesired side effect of turning some lighter colors gray. Is there a means of setting the 'read-only' background color without it being altered by the control when the control is read only?
Dinko | Tech Support Engineer
Telerik team
 answered on 23 May 2017
1 answer
198 views
Hi,

I would like to know if i will receive the full sources for all exemples (specially TableShape Diagram demo) if i buy telerik's WPF component ?

Thanks for your answer ?



Nicolas
Martin Ivanov
Telerik team
 answered on 23 May 2017
Narrow your results
Selected tags
Tags
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?