NotImplementedException is thrown if the ItemsSourceProvider property is set in a Style setter.
To work this around, implement custom GridViewItemsSourceProvider and override its CreateInstanceCore method.
public class CustomGridViewItemsSourceProvider : GridViewItemsSourceProvider
{
protected override Freezable CreateInstanceCore()
{
return new CustomGridViewItemsSourceProvider();
}
}
If you set the KeepDropDownOpen property of RadMultiColumnComboBox to False, clicking outside of the control should close the popup showing the dropdown content. This stops working after you drag a row from the GridView outside of the dropdown. For example, the drop can happen outside of the RadMultiColumnComboBox control or on its text input and drop down button area.
To resolve this, you can subscribe to the PreviewMouseLeftButtonUp event of RadMultiColumnComboBox and capture the mouse when needed.
this.mccb.AddHandler(RadMultiColumnComboBox.PreviewMouseLeftButtonUpEvent, new MouseButtonEventHandler(Mccb_MouseLeftButtonUp), true);
//---------------
private void Mccb_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var button = Mouse.DirectlyOver as RadDropDownButton;
if (this.mccb.IsDropDownOpen && button != null && button.TemplatedParent is RadMultiColumnComboBox)
{
Dispatcher.BeginInvoke(new Action(() => { button.CaptureMouse(); }));
}
}
The value of the SelectedItem is shown twice when the theme is changed.
A temporary solution to this would be to revert to the 2022.2.511 version.
The text of the text input box is automatically assigned if SelectedItem is set initially. This should happen when the SelectionBoxesVisibility property is set to Visible (which is the default value). For example, if you have an item called "Item A" and you assign it to the SelectedItem property at startup of the control, then the text will also become "Item A".
To work this around, you can manually clear the text on loaded of the control.
private void RadMultiColumnComboBox_Loaded(object sender, RoutedEventArgs e)
{
var mccb = (RadMultiColumnComboBox)sender;
var tb = mccb.FindChildByType<TextBox>();
tb.Text = string.Empty;
}
private void RadMultiColumnComboBox_Loaded(object sender, RoutedEventArgs e)
{
var mccb = (RadMultiColumnComboBox)sender;
var selection = mccb.SelectedItem;
mccb.SetCurrentValue(RadMultiColumnComboBox.SelectedItemProperty, null);
mccb.SetCurrentValue(RadMultiColumnComboBox.SelectedItemProperty, selection);
}
When the SelectionMode of MultiColumnComboBox is set to Single, changing the Selection invokes twice the SelectionChanged event.
What I would expect is that the event fires only once, with one item in AddedItems and one item in RemovedItems. Currently, addition and removal is done seperately, and the two invocations of the event correspond to them.
To reproduce, just use the Getting Started article about MultiColumnComboBox with the Clubs ItemSource. Subscribe to SelectionChanged event and make a change to the selection. I hope the following gif makes this clear - the first selection is valid, but the second should invoke the event only once, with 1 item added, 1 removed.
The drop-down menu does not close when a context menu is opened on top of it, even if the KeepDropDownOpen="False". The control would need to move the focus in order for the drop-down to close.
To work this around, you can use the CloseDropDown() method of the MultiColumnComboBox control.
When placing controls in the CellTemplate/CellEditTemplate in the RadMultiColumnComboBox`s dropdown`s GridView some do not receive/accept the mouse input correctly.
In the newest version (2021.2.615) the dropdown of a RadDatePicker does not open. A RadButton works fine and a RadComboBox open and can select an item via mouse click.
In a previous version (2021.1.325) the RadComboBox also does not work, this seems to be fixed already.
I have attached a sample project demonstrating the behavio:
1) start the project
2) open the dropdown of the RadMultiColumnComboBox
3) click on the RadDatePicker`s calender icon button. => the calender view does not open
The very same DataTemplate is applied obove the RadMultiColumnComboBox to illustrate the proper behavior in contrast.
The behavior is visually demonstrated in the .gif (1.gif and 2.gif) I have attached.
If you host RadMultiColumnComboBox in a control with a vertical ScrollViewer, then open the popup content of the RadMultiColumnComboBox and use the mouse wheel in it, the parent ScrollViewer scrolls. In comparison RadComboBox and the native WPF ComboBox are not scrolling. Instead the scrolling event is consumed and it doesn't propagate to the parent ScrollViewer.
The attached project shows one way to work this around.