Оцените ContentControl без рендеринга на экран - PullRequest
0 голосов
/ 06 апреля 2010

У меня есть сетка данных, и я пишу метод для поиска по нему, чтобы найти текст. Практически все мои столбцы используют DataTemplateSelector, поэтому в моем поиске мне нужно иметь возможность взять DataTemplate, применить его к ContentControl, а затем найти TextBlock, чтобы получить текст, чтобы увидеть, соответствует ли он моим критериям поиска. Я пытаюсь сделать следующее, но это не дает никаких результатов. Я также попытался найти FindName (элемент управления layoutRoot), но он также получил значение null.

var control = new ContentControl();
control.ContentTemplate = dataTemplate;
control.Content = item;

var txtBox = control.FindChildren<TextBlock>();

Ответы [ 2 ]

0 голосов
/ 22 июня 2012

Я не думаю, что вы решаете эту проблему правильно.Вы должны получать элементы поиска из списка, который, как мы надеемся, находится в вашей модели просмотра.И выбранный элемент вашей сетки должен быть привязан к свойству, которое вы можете установить для элемента, который вы нашли в поиске.Дайте мне знать, если вы хотите, чтобы я подробно рассказал вам об этом с помощью нескольких примеров кода.

0 голосов
/ 23 апреля 2010

Пробовали ли вы VisualTreeHelper's GetChild () / GetChildrenCount () для перечисления всех дочерних элементов?

Кроме того, я полагаю, что вы можете установить инициализированный обработчик из XAML для целевого элемента управления в DataTemplate и оттуда подписаться на событие Loaded (при необходимости).

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