I have a MVVM RadDiagram setup that binds data via SerializableGraphSourceBase<T, U>. In that setup:
What to do?
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();
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
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.
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?
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()
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