Как связать свойство зависимости usercontrol со свойством viemodel usercontrol? - PullRequest
0 голосов
/ 13 марта 2012

У меня есть текстовое поле и кнопка в пользовательском контроле, и она открывает окно при нажатии кнопки, чтобы выбрать что-то и вставить в текстовое поле: как это:

  string myProperty;
    public string MyProperty
    {
        get
        {
            return myProperty;
        }
        set
        {
            myProperty= value;
            RaisePropertyChanged("MyProperty");
        }
    }

 public ICommand buttonClickCommand
 {
    get { return new RelayCommand(ShowItemView); }
 }
 void ShowItemView()
  {  
  var ItemViewModel = new ItemViewModel();
  var ItemView = new ItemView();
  ItemView .DataContext = ItemViewModel ;
  ItemView .ShowDialog();
  if (ItemViewModel .SelectedItem != null)
       myProperty= ItemViewModel .SelectedItem.Name;
  }

и теперь я хочу создать два экземпляра usercontrol в окне и привязать их текстовое поле к двум свойствам viewmodel окна, поэтому я создаю для этого свойство зависимости следующим образом:

public static readonly DependencyProperty OperandTextValueProperty = DependencyProperty.Register("OperandTextValue",
           typeof(string),
           typeof(DefaultSpecItemControl),
            new FrameworkPropertyMetadata()
            {
                PropertyChangedCallback = OnOperandTextValue,
                BindsTwoWayByDefault = true
            });

    public string OperandTextValue
    {
        get
        {
            return (string)GetValue(OperandTextValueProperty);
        }
        set
        {
            SetValue(OperandTextValueProperty, value);

        }
    }

и связать его со свойствами в viewmodel окна, но я не знаю, как я могу связать его с viemodel usercontrol, в этом случае, чтобы связать его с MyProperty в viewmodel элемента управления.So

1: Есть ли способ привязать свойство зависимости пользовательского элемента управления к его собственной модели представления?

2: Я на правильном пути?

заранее спасибо.

1 Ответ

1 голос
/ 13 марта 2012

Да, есть способ привязать свойство зависимостей пользовательского элемента управления к его собственной модели представления, хотя в большинстве случаев вы захотите привязать пользовательский интерфейс пользовательского элемента управления к самому себе, т. Е.

LayoutRoot.DataContext = this;

Общее руководство по разработке и привязке пользовательского элемента управления см. В этом руководстве, которое я написал .

...