0

我将 Visual Studio 2013 与 Silverlight 5 Pivotviewer 一起使用。几年前,我已经用它的前身做了一些 Pivotviewer 的东西,而且它工作得很好(Excel 插件工具)。现在我试图用代码和版本 5 创建一个 pivotviewer。

我从互联网上举了一个例子,它展示了一种生日书。该示例中的 PivotViewerItemTemplate 是一个带有文本框的简单边框。它一切正常,但后来我想在 PivotViewerItemTemplate 中包含一个图像文件,其中源标签被绑定到一个字符串。不知何故,直到我通过工具箱手动将另一个图像放置在窗口的任何位置之前,我都没有得到任何图片。现在,pivotviewer 开始显示它通过绑定获得的所有对象的图像。我调试并看到绑定正在为所有人做正确的工作。

主页.xaml

 <UserControl x:Class="PivotViewer5.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:pv="clr-namespace:System.Windows.Controls.Pivot;assembly=System.Windows.Controls.Pivot"
    xmlns:local="clr-namespace:PivotViewer5"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">


    <Grid x:Name="LayoutRoot" Background="White">
        <pv:PivotViewer x:Name="pivotviewer" ItemsSource="{Binding}">
            <pv:PivotViewer.PivotProperties>
                <pv:PivotViewerStringProperty Id="Name" Options="CanFilter" DisplayName="Name" Binding="{Binding Name}" />
                <pv:PivotViewerNumericProperty Id="Age" Options="CanFilter" DisplayName="Age" Binding="{Binding Age}" />
                <pv:PivotViewerDateTimeProperty Id="Birthday" Options="CanFilter" DisplayName="Birthday" Binding="{Binding Birthday}" />
            </pv:PivotViewer.PivotProperties>
            <pv:PivotViewer.ItemTemplates>
                <pv:PivotViewerItemTemplate MaxWidth="800">
                    <Border Width="120" Height="120" Background="DarkSlateBlue">
                        <Image Source="{Binding ImageName}" Width="120" Height="120"/>
                    </Border>
                </pv:PivotViewerItemTemplate>
                <pv:PivotViewerItemTemplate>
                    <Border Width="120" Height="120" Background="Blue">
                        <Image Source="{Binding ImageName}" Width="120" Height="120"/>
                    </Border>
                </pv:PivotViewerItemTemplate>
            </pv:PivotViewer.ItemTemplates>
        </pv:PivotViewer>
        <Image HorizontalAlignment="Left" Height="100" Margin="704,108,-404,0" VerticalAlignment="Top" Width="100" Source="images/bild.png" />
        <Image HorizontalAlignment="Left" Height="100" Margin="704,143,-404,0" VerticalAlignment="Top" Width="100" Source="images/bild4.png"/>
    </Grid>
</UserControl>

正如您在底部看到的那样,我放置了两个图像,然后pivotviewer 开始接受图像bild4 和bild。因此,“Brad”和“Rocky”现在正在与这些图像一起显示。在我从底部删除两条图像线后,pivotviewer 不再显示任何内容,除了边框及其背景颜色。

MainPage.xaml.cs

public MainPage()
        {
            InitializeComponent();
            List<Person> birthdayBook = new List<Person>();
            birthdayBook.Add(new Person("Brad", 25, new DateTime(1986, 5, 9), "images/bild.png"));
            birthdayBook.Add(new Person("Janet", 12, new DateTime(1998, 12, 3), "images/bild3.png"));
            birthdayBook.Add(new Person("Rocky", 43, new DateTime(1968, 7, 17), "images/bild4.png"));
            birthdayBook.Add(new Person("Magenta", 21, new DateTime(1990, 2, 21), "images/bild.png"));

            pivotviewer.DataContext = birthdayBook;
}

我猜 ItemTemplate 标记中的 xaml 代码有问题,但在哪里?bild (120x120)、bild3 (485x485) 和 bild4 (120x120) 的属性。图像包含在该图像文件夹中的项目中,构建操作是资源。

4

0 回答 0