Возможно ли сделать DependencyProperty типа коллекции, чтобы применялась OneWayToSource привязка?

Есть кастомный контрол. В нём есть DependencyProperty:

    public IList MySelectedItems
    {
        get { return (IList)GetValue(MySelectedItemsProperty); }
        set
        {
            if (value != null)
            {
                SetValue(MySelectedItemsProperty, value);
            }
            else
            {
                ClearValue(MySelectedItemsProperty);
            }
        }
    }

    public static readonly DependencyProperty MySelectedItemsProperty = DependencyProperty.Register(
        "MySelectedItems", typeof(IList), typeof(MyGridControl), new PropertyMetadata(null));

который дополнительно инициализируется в конструкторе

    public MyGridControl()
    {
        MySelectedItems = new ObservableCollectionCore<object>();
    }

работа с ним ведется в обработчике события таким образом:

        if (MySelectedItems != null)
        {
            MySelectedItems.Clear();
            foreach (int index in OrderedSelection)
            {
                if ((bool)_selection[index])
                {
                    MySelectedItems.Add(GetRowByListIndex(index));
                }
            }
            MySelectedItemsCount = MySelectedItems.Count;
        }

К нему в контексте привязано свойство, объявленное так:

private ObservableCollection<TestData> _selectedData = new ObservableCollection<TestData>();
public ObservableCollection<TestData> SelectedData
    {
        get { return _selectedData; }
        set
        {
            _selectedData = value;
            RaisePropertyChanged(nameof(SelectedData));
        }
    }

через привязку в xaml

<local:MyGridControl MySelectedItems="{Binding Path=SelectedData}" />

Всё это работает. Однако меня интересует вопрос, возможно ли каким-то образом изменить код так, чтобы в xaml применялась привязка:

MySelectedItems="{Binding Path=SelectedData, Mode=OneWayToSource}"

На данный момент, если я пытаюсь это сделать, то MySelectedItems инициализуруется null'ом. Почему так происходит и можно ли это изменить?


Ответы (0 шт):