Как получить ссылку на базовый тип данных шаблона данных в WPF - PullRequest
0 голосов
/ 18 ноября 2011

Вот моя ситуация:

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

MyВесь пользовательский контроль - это панель стека, которая прокручивается по мере добавления к ней новых кнопок.Каждый раз, когда добавляется новая кнопка, она размещается ContentControl, а затем добавляется к дочерним элементам панели стека.Примерно так:

var newButton = new DataType();
var host = new ContentControl {content = newButton};
stackPanel.Children.Add(host);

Где DataType - это тип, который ищет DataTemplate.

Этот класс DataType имеет свойство, к которому мне нужен доступ в коде.

Когда пользователь нажимает на одну из этих кнопок переключения, я хочу иметь возможность получить ссылку на объект DataType, который представляет кнопка, и я не могу понять, как это сделать.Возможно ли это?

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 18 ноября 2011

Если вы обрабатываете какое-либо событие щелчка, у вас, вероятно, есть обработчик, такой как

private void HandleClick(object sender, EventArgs e)
{
  ....

Отправитель будет вашим контролем.Вы можете привести объект к тому, чем он является, и затем получить доступ к его DataContext, который вы также можете привести к вашему «DataType».Если визуальные отношения более сложны, вам, возможно, придется больше ходить по визуальному дереву, но вы должны быть в состоянии это сделать.При использовании подхода с выделенным кодом это обычный способ, который я видел, чтобы получить доступ к вещам, которые находятся в шаблонах данных и поэтому не могут быть названы и манипулированы напрямую.

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