Использование привязки к списку <UserControl>, как я могу сделать, чтобы не отображать элементы управления - PullRequest
1 голос
/ 03 сентября 2011

Это код, с которым я работаю:

<TextBlock TextWrapping="Wrap" Text="{Binding Objective}" Grid.Column="0" VerticalAlignment="Center" FontWeight="Bold" />
<ItemsControl ItemsSource="{Binding Problems}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Rectangle Stroke="Black" Height="20" Width="20" Margin="1,0" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>

Когда для ItemsSource установлено значение listBox.Он содержит:

List<Container>
(Below container properties)
    - Objective: string
    - Problems: List<UserControls>

Посмотрите на эту строку: <ItemsControl ItemsSource="{Binding Problems}" > В коде «Проблемы» приведен список пользовательских элементов управления.Когда я загружаю программу, в списке отображаются элементы управления от пользовательского элемента управления, и он должен показывать прямоугольник.

Что я делаю не так?

1 Ответ

4 голосов
/ 03 сентября 2011

Посмотрите на окно вывода Visual Studio, и вы увидите следующее:

Ошибка System.Windows.Data: 26: ItemTemplate и ItemTemplateSelector игнорируются для элементов, уже имеющих тип контейнера ItemsControl;Тип = 'XXX'

Шаблон не применяется, так как элементы могут быть добавлены напрямую.


Что я имел в виду при переносе элементов управления, так это то, что вы создали класскоторый содержит свойство для UserControl, например:

 Problems : List<ProblemContainer>
public class ProblemContainer
{
    public UserControl Problem { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...