【发布时间】:2014-06-29 18:49:18
【问题描述】:
我正在尝试将字典绑定到包含数据模板和 itemscontrol 的数据透视控件。但只出现一个没有内容的枢轴项。 我不知道我在这里做错了什么,所以如果有人可以帮助我找到错误或替代方案,那就太好了:)
这是 XAML 标记:
<phone:Pivot Name="visitingHoursPivot" ItemsSource="{Binding}" Height="324">
<phone:Pivot.ItemTemplate>
<DataTemplate>
<phone:PivotItem Header="{Binding Key}">
<ItemsControl Name="rfbItems" ItemsSource="{Binding Value}"
Style="{StaticResource contentItemsControl}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" Width="Auto" HorizontalAlignment="Left" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="125" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding DayName}" Style="{StaticResource App_Content_Grid}" TextAlignment="Left" />
<TextBlock Grid.Column="1" Text="{Binding Description}" Style="{StaticResource App_Content_Grid_Subtle}" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</phone:PivotItem>
</DataTemplate>
</phone:Pivot.ItemTemplate>
</phone:Pivot>
在后面的代码中我只是这样做:
public Openingstijden()
{
InitializeComponent();
visitingHoursPivot.ItemsSource = HourDataSource.GetAllHours();
}
ItemsSource 是一个字典,它是这样创建的:
public static IDictionary<String, IEnumerable<HourItem>> GetAllHours()
{
IDictionary<String, IEnumerable<HourItem>> result = new Dictionary<string, IEnumerable<HourItem>>();
foreach (ProfileItem profile in _hourDataSource.Profiles)
{
var hoursLinq = _hourDataSource.Hours
.Where(hour => hour.Id == profile.Id)
.Select(hour => hour);
result.Add(profile.Title, hoursLinq.AsEnumerable<HourItem>());
}
return result;
}
调试时是这样的:
关于如何解决这个问题的任何想法?
【问题讨论】:
标签: c# wpf windows-phone-8 dictionary binding