I hope I can find some help here.I'm using telerik and got a RadComboBox with MultiSelection. I've extended the functionality of RadComboBox by using an attached property called "SelectItemsHelper" and add the desired items to the SelectedItems collection of the ComboBox. But when i try to get the selected items i dont get any Values. What do i do wrong?
My SelectedItemsHelper
using System.Collections;
using System.Windows;
using Telerik.Windows.Controls;
namespace WpfAutoQuery
{
public class SelectedItemsHelper
{
public static readonly DependencyProperty SelectedItemsProperty =
DependencyProperty.RegisterAttached("SelectedItems", typeof(IList), typeof(SelectedItemsHelper), new FrameworkPropertyMetadata((IList)null, new PropertyChangedCallback(OnSelectedItemsChanged)));
public static IList GetSelectedItems(DependencyObject d)
{
return (IList)d.GetValue(SelectedItemsProperty);
}
public static void SetSelectedItems(DependencyObject d, IList value)
{
d.SetValue(SelectedItemsProperty, value);
}
private static void OnSelectedItemsChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
var comboBox = sender as RadComboBox;
if (comboBox != null)
{
IList selectedItems = GetSelectedItems(comboBox);
if(selectedItems != null)
{
comboBox.SelectedItems.Clear();
foreach (var item in selectedItems)
{
comboBox.SelectedItems.Add(item);
}
}
}
}
}
}
My RadComboBox in View
<telerik:RadComboBox Name="rcbSection" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="2" Margin="10" IsEditable="False"
ItemsSource="{Binding Sections}" DisplayMemberPath="Line1" AllowMultipleSelection="True"
local:SelectedItemsHelper.SelectedItems="{Binding SelectedSections}">
</telerik:RadComboBox>
My SelectedSections property in ViewModel
public ObservableCollection<Section> SelectedSections
{
get { return GetPropertyValue<ObservableCollection<Section>>(); }
set { SetPropertyValue(value); }
}
Section Class
public class Section : INotifyPropertyChanged
{
public Section(string line1)
{
this.Line1 = line1;
}
public string Line1
{
get { return GetPropertyValue<string>(); }
set { SetPropertyValue(value); }
}
I made a Screenshot while debuging enter image description here