我将 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) 的属性。图像包含在该图像文件夹中的项目中,构建操作是资源。