Hi,
we are using our own IPagedCollectionView implementation in combination with the RadDataPager control as shown in the attached example project. Basically, we bind an instance of the PagedCollectionView that is provided by our ViewModel to the Source property of the RadDataPager.
Recently we started to take implementing the Dispose pattern a bot more seriously and also added the IDisposable interface to our custom PagedCollectionView (in order to Dispose some internally used CancellationTokenSource). Today we realized that the RadDataPager now calls Dispose() on the PagedCollectionView instance although not being its owner. This happens as soon as the DataPager itself is Disposed e.g. by switching modules (and thus loading a new DataTemplate) in our multi-module application. Coming back to the module will then cause the disposed Collection to be used again, potentially causing ObjectDisposedExceptions etc.
What I would expect: The RadDataPager control should not call Dispose() on its Source collection if it is Data-Bound to a ViewModel since that might leave the ViewModel in an invalid state that can cause Exceptions later on.
The problem exists with .net 6 and .net Framework 4.8 as well as with versions 2022.3.1109 (Xaml, see Example project) and 2022.2.621 (NoXaml)
Hi Team,
having a "Signature" component in your WPF package like you have in your Blazor package will be very interesting.
Regards
Al
Can be reproduced in the WPF demo (Windows8 theme): the error description tooltip appears on the left of the control and with the red arrow on the left (see attachment). The tooltip should appear on the same side of the red adorned element (the red triangle, top right corner) and the tooltip arrow should point the control.
So, if there is a solution to this, I haven't found it yet after scouring the documentation and the internet.
Using your example in the WPF Demo, I created a custom object for my items that I bind to the RadNavigationView.ItemsSource. Yours was called NavigationItemModel. Mine is called ShellMenuItem. ShellMenuItem inherits from UserControl, and implements INotifyPropertyChanged, and ICommandSource. All bindings to my properties are wired up in the xaml and work great (EXCEPT FOR THE ISEXPANDED PROPERTY. Next, I have several properties that are pulled from a database, or can be set programmatically in code, like Id, ParentId, Header, NodeType, TargetPageType (Page, Window, etc), TargetViewModelType, etc... Just standard properties. These are so I can programmatically send these dynamic items menu items, pulled from a database, to the correct View and ViewModel. ALL OF MY PROPERTIES WORK FINE, and when I click on a menu item, if it is a page, it opens in the frame, if it is a window, it opens a window, etc... Everything works fine, except the IsExpanded. So, here is the issue. I have a property on ShellMenuItem named IsExpanded. When I try to set this property, the ShellMenuItems do not collapse or expand. Again, I have INotifyPropertyChanged implemented.
On the form, I have a toggle button to expand/collpase all items in the RadNavigationView. I have it's Checked event bound to a command in my ViewModel.
<ToggleButton Content="TestExpandAll">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding ElementName=_this, Path=DataContext.CmdExpandMenus}" PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ToggleButton>
public ICommand CmdExpandMenus { get { return new RelayCommand<RoutedEventArgs>(OnExpandMenus); } }
This fires correctly in my code, at which point I loop through the RadNavigationMenu's ItemsSource and set each property to IsExpanded = true; As shown below. The button should expand all items if the togglebutton state IsChecked, else, it should collpase all items. I have also tried to loop through the actual bound list which likewise, does not work. I can not find a way to get at the entire list of RadNavigationViewItems or even cast my items to a RadNavigationViewItem, even though the ItemContainerStyle's target type is RadNavigationViewItem. There has got to be a simpler way to achieve this.
private void OnExpandMenus(RoutedEventArgs? e) { //foreach (var item in this.StaticMenuItems) //{ // item.IsExpanded = true; //} foreach (var shellMenuItem in this.MainMenu.ItemsSource) { var itm = shellMenuItem; var itmType = itm.GetType(); //itmType is ShellMenuItem var menuItem = shellMenuItem as ShellMenuItem; //var targetType = this.MainMenu.ItemContainerStyle.TargetType; //targetType is RadNavigationViewItem menuItem.IsExpanded = true; } }
I have easily achieved this effect on many other controls, and you even have predefined Methods to perform this on controls such as RadTreeViewList.
void treeListView_DataLoaded(object sender, EventArgs e) { treeListView.DataLoaded -= treeListView_DataLoaded; treeListView.ExpandAllHierarchyItems(); }
Can you add a method to the RadNavigationView to ExpandAllHierarchyItems(true/false) or just add 2 methods...
ExpandAllHierarchyItems() and CollapseAllHierarchyItems()
If this is not feasible, then you should update your demo to show how to accomplish this with a custom menu item. Im sure I could make my ShellMenuItem inherit directly from RadNavigationViewItem but in my control library, I dont have any references to Telerik because there are applications that use ShellMenuItem that do not use Telerik at all, and we shouldnt have to make our generic controls inherit from a 3rd party control to make this work. It seems to me that if you have a control that allows a hierarchy of items, and those controls/classes can be expanded or collapsed, then you should ALWAYS add the methods above to those controls/classes. Or perhaps you could create an interface named IExpandable, and any control that you guys create that can be expanded/collapsed, could implement that interface and have access to the ExpandAll/CollapseAll funtionality.
Thanks,
John
In Windows 11, when mouse over top level window title bar maximize box, there should be snap layout drop down, but for any child window there should not be snap layout drop down.
I've tested the following 4 cases and all of them works fine
1. win32 project
2. MFC project
3. general Winform project
4. general WPF project.
but for Telerik WPF project which use RadRibbonWindow as main window, the behavior is wrong. as attached video shows
Hello i have noticed few weird/wrong behaviors of containers.
Based on your MVVM demo application:
Select node : A4 in Audi group
Select node Volkswagen Group.
Move Volkswagen group by 1px
In such case you removed A4 node from its container, which was dropped correctly.
Hello!
I'm in need for a VisibleColumnCount dependency property for RadGridView (or GridViewDataControl I guess).
Just like FrozenColumnCount actually, so I guess this is just a simple dev but I can be wrong?
It would be so helpful, because I have a textbox ("search column with name") that I use to toggle the visibility of the columns in my RadGridView, and I want to do stuff whether there are matching columns (like, displaying a text "No results").
Currently, I'm using a bunch of converters to do the job an it leads to quite ugly and hard-to-maintain code.
Thanks in advance!
Arthur
Currently RadComboBox has no property to prevent user from clearing it with backspace. Also ComboBox SelectedIndex may become -1 when ItemSource is changed.
New propery (CanClear) could be checked on KeyDown event, when item collection is changed or when SelectedItem is changed..
If CanClear is set to false:
Backspace is ignored on KeyDown.
If collection is changed and collection size is greater than 0, ComboBox SelectedIndex becomes 0 automatically.
If SelectedItem becomes null and item collection size is greater than 0, ComboBox attemts to select first non-null item from collection.
At this time, Telerik UI for WPF distributes libraries build for each TFM -> WPF45, NetCore and NET50.
If there was a way that UI for WPF could compile some of those libraries .NET Standard 2.0 compatible, it would allow for the developers making the transition from .NET Framework to .NET Core/.NET5 a but easier because they will be able to share the reusable Telerik code in a class library consumed by both WPF45 and WFP50 projects
I would request a new control. The RadButtonTextBox like the one in WinForms.
For fields with for example phonenumbers or emails we could then add a Button for launching the SIP oder Emailclient.
The possibilities are endless. Look at the "TextBox" in your browser window ;)
Sincerly
Daniel