WPF C # Custom UserControl Как добавить свойство, которое принимает привязку - PullRequest
1 голос
/ 20 января 2011

Я пытаюсь создать CustomUserControl, который состоит из TextEditor и PopUp ...

Таким образом, элемент управления Popup должен быть связан со списком ... Я назвал это BindingList. Это свойство должно принимать любые типы, такие как ObservableCollection, List, Ienumerable, например (Collections) ...

<my:CustomControl BindingList="{Binding Path=Collection}"


 public IEnumerable<object> BindingList
    {
        get { return (IEnumerable<object>)GetValue(BindingListProp); }
        set { SetValue(BindingListProp, value); }
    }

BindinglistProp

 public static readonly DependencyProperty BindingListProp = DependencyProperty.Register(??????

Понятия не имею, как должно выглядеть, что оно может принять привязку.

А как мне поступить с Переданной коллекцией? когда это тот тип, который я не знаю

как

    class Person
    {
        private string _Name;
        private string _forename;


        public string Name
        {
            get { return _Name; }
            set
            {
                _Name = value;
            }
        }

        public string Forename
        {
            get { return _forename; }
            set
            {
                _forename = value;
            }
        }
    }

Спасибо за любые подсказки, учебники или фрагменты кода.

искренне Mark

Ответы [ 2 ]

3 голосов
/ 20 января 2011
public IObservable<object> BindingList
{
  get { return (IObservable<object>)base.GetValue(BindingListProperty); }
  set { base.SetValue(BindingListProperty, value); }
}

public static DependencyProperty BindingListProperty =
  DependencyProperty.Register(
  "BindingList",
  typeof(IObservable<object>),
  typeof(CustomControl),
  new PropertyMetadata(null));
1 голос
/ 20 января 2011

Посмотрите на CollectionViewSource.GetDefaultView для совместной работы с любой коллекцией.

...