2009-05-16 3 views
1

Эй, мне было интересно, можно ли пропустить несколько элементов управления WPF. Поэтому давайте скажем, что у меня есть элемент управления, который я хочу визуализировать (с разными данными каждый раз) 10-20 раз в зависимости от того, что у него есть.Петля через UserControl в WPF

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

Можно ли их зацикливать?

ответ

3

Возможно, вам придется уточнить свой вопрос.

Что вы подразумеваете под «loop through?»?

Когда вы говорите, что хотите визуализировать элемент управления «10-20 раз», вы имеете в виду, что у вас есть один элемент управления, который вам нужно изменить 10-20 раз или 10-20 элементов управления?

Возможно, вас заинтересует DataTemplates and ItemsControls. Вы можете привязать элемент ItemsControl к ObservableCollection, содержащему различные типы объектов, а затем определить различные DataTemplates для каждого типа объектов, содержащихся в коллекции. Элемент ItemsControl отобразит соответствующий элемент управления для каждого объекта, содержащегося в ObservableCollection.

+0

Жаль, что вы так расплывчаты. У меня есть пользовательский элемент управления, который я хочу отображать больше одного раза. Например: в зависимости от того, сколько данных у меня есть, я хочу, чтобы он отображал его. Так что, если у меня было 5 объектов, то XAML может появиться как <х: UserControl 1> <х: UserControl 2> <х: UserControl 3> <х: UserControl 4> <х: UserControl 5> каждый с соответствующие данные. Я собираюсь изучить эти шаблоны данных, чтобы узнать, есть ли у меня то, что я ищу. – puttputt

+0

Я, вероятно, с помощью UserControls ошибочно, эти DataTemplates выглядят так, как я должен использовать. – puttputt

+0

ItemsControl и DataTemplates звучат так, как вам нужно. – Will

4

Я предполагаю, что вы уже используете шаблоны данных, и вы спрашиваете, как выполнить цикл через объекты, созданные для представления ваших данных из DataTemplate. Я прав? Для этого вам необходимо использовать VisualTreeHelper.

Смежные вопросы