Silverlight привязывает текстовый блок в другом пользовательском элементе управления - PullRequest
0 голосов
/ 01 апреля 2009

У меня есть небольшой пользовательский контроль, который в основном увеличивает или уменьшает значение на единицу. Пользовательский элемент управления имеет две кнопки (одну для добавления, а другую для вычитания) и текстовый блок, который используется для отображения значения.

Я собираюсь иметь несколько экземпляров этого пользовательского элемента управления в другом пользовательском элементе управления, чтобы я мог манипулировать значениями класса данных, который имеет интерфейс INotifyPropertyChanged. Мой вопрос заключается в том, как я могу связать данные с textBlock значения, изменяющего usercontrol, на usercontrol, в котором я его установил?

1 Ответ

4 голосов
/ 01 апреля 2009

Во-первых, я хочу сказать, что Silverlight 2 не поддерживает привязку элемента к элементу. Эта функция добавлена ​​в Silverlight 3 (теперь в бета-версии). Сказав это, я не думаю, что вы все равно хотите связать элементы управления. Похоже, вы пытаетесь создать элемент управления NumericUpDown, и у вас, вероятно, есть какой-то класс в коде, который на самом деле выполняет увеличение и уменьшение.

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

Теперь, если вы на самом деле пытаетесь создать элемент управления NumericUpDown, вы можете попробовать Silverlight Toolkit. Инструментарий уже включает этот элемент управления и поддерживает привязку данных.

Проверьте элемент управления NumericUpDown здесь и загрузите инструментарий здесь .

Наконец, привязка дочернего элемента управления к родительскому элементу управления действительно ничем не отличается. Родительский UserControl имеет DataContext, и все дочерние элементы управления наследуют его. Каждый отдельный дочерний элемент управления также может иметь свой набор DataContext. Связывающие выражения всегда относятся к DataContext, и DataContext может быть установлен в коде. В вашем случае, вероятно, к какой-то модели.

Надеюсь, это поможет.

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