В чём проблема ListView?

387
25 мая 2017, 07:19

Нужно представление нескольких элементов в виде значков. Использую ListView:

<UserControl.Resources>
    <Style x:Key="FileItemStyle" TargetType="{x:Type ListViewItem}">
        <Setter Property="Margin" Value="10,5"/>
        <Setter Property="HorizontalAlignment" Value="Left"/>
        <Setter Property="VerticalAlignment" Value="Top"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate  TargetType="{x:Type ListViewItem}">
                    <Grid HorizontalAlignment="Left" VerticalAlignment="Top">
                        <ContentPresenter/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</UserControl.Resources>
<ListView x:Name="listView" ItemContainerStyle="{StaticResource FileItemStyle}">
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel/>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <ListView.ItemTemplate>
        <DataTemplate>
            <DockPanel>
                <TextBlock DockPanel.Dock="Bottom" Text="{Binding Name}"/>
                <Image DockPanel.Dock="Top" Height="48" Width="48" Source="{Binding Image}"/>
            </DockPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Как можно видеть, код внутри UserControl, т.к. представление будет основано не только на одном ListView. Проблема состоит в добавлении элементов:

        listView.Items.Add(new { Name = "Icon1", Image = ".\\Images\\icon.png" });
        listView.Items.Add(new { Name = "Icon2", Image = ".\\Images\\icon.png" });

Если добавить более 5 элементов, то выбрасывается исключение следующего содержания:

An unhandled exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll
Additional information: Предоставление значения для "System.Windows.Baml2006.TypeConverterMarkupExtension" вызвало исключение.

Добавить 5, всё работает нормально. Именно это число было взято ввиду просто ширины listView - когда значки переходят на 2-ую "строчку" во wrappanel. Т.е. не удаётся в несколько строк располагать значки.

Как проблему решить?

READ ALSO
android не добавляет записи в mysql

android не добавляет записи в mysql

Мобильное приложение не добавляет записи в MySQL, хотя никаких ошибок Android Studio не выдаетНе пойму в чем ошибка

269
Получаю ошибку в Facebook Graph API Explorer&hellip;v2.9

Получаю ошибку в Facebook Graph API Explorer…v2.9

Это ошибка появляется, когда я пытаюсь отослать уведомление:

266
PHPWord. Вывод в шаблоне в цикле блоков текста

PHPWord. Вывод в шаблоне в цикле блоков текста

Есть шаблон в формате docxТребуется выводить произвольное число раз блок текста (и в том числе таблицу) одной и той же структуры, но с разным...

324