Получить значение AttachedProperty элемента пользовательского интерфейса, не отображаемого (пока) - PullRequest
0 голосов
/ 26 сентября 2011

Я пытаюсь сделать следующее, используя MVVM, Binding и AttachedProperty

  • Создание ViewObj (производный класс System.Windows.Controls.Control)
    • ViewObj имеет 1 AttachedProperty с именем "Order" (OrderProperty), объявленный в классе с именем View.
    • Присоединенное свойство связано со свойством ViewModel в xaml
  • Создать ViewModel
  • Установить ViewModel как DataContext для ViewObj

До того, как ViewObj будет отображен / обработан / т. Д.

  • Получить заказ в коде, сделав var order = View.GetOrder(ViewObj)

  • Отображается ViewObj и отображается значение привязки ...

Если AttachedProperty является значением, а не выражением привязки, значение, возвращаемое View.GetOrder(ViewObj), является хорошим, а не значением по умолчанию.

Есть идеи?

EDIT:

Я принудительно оценил выражение привязки данных с помощью класса BindingExpression. Я обнаружил, что BindingExpression.Status был установлен на Unattached, что, кажется, объясняет, почему он не работает.

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

Но ... это не сильно помогает мне в моей проблеме ...

1 Ответ

0 голосов
/ 05 октября 2011

Я обнаружил, что (по крайней мере, в моем случае) Binding был Unattached, но DataContext был установлен.

Поэтому я решил получить DataContext (ViewModel) и работать с ним.

Любые другие предложения приветствуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...