我正在尝试从here扩展RSS阅读器示例。
我已将应用转换为全景。我已经做到了,所以第一个全景项目加载了我的Feed,第二个项目的类别带有相应的复选框。这些类别被数据绑定到Categories类,该类将从XML文件中填充。
无论如何,'我的供稿'部分的代码如下:
<TextBlock x:Name="ItemName" Text="{Binding ItemTitle}" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="ItemDetails" Text="{Binding ItemDetails}" Style="{StaticResource PhoneTextSubtleStyle}"/>
并且当列表中没有供稿时,我试图让它显示“空”(当选中相邻面板中的复选框时,将填充供稿)。所以我将此代码添加到MainPage.xaml.cs中的OnNavigatedTo方法
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
this.DataContext = App.Model;
base.OnNavigatedTo(e);
// If there are no feeds yet, let the user know
if (App.Model.FeedItems.Count == 0)
{
App.Model.FeedItems.Add(
new ViewModel.ItemModel()
{
ItemDetails = "",
ItemTitle = "Empty!",
ItemLink = "#"
}
);
}
}
但这不是正确的方法。现在如果我导航到另一个页面并返回并且列表中有feeditems,我仍然会获得“Empty”,然后是项目。我该如何解决这个问题?
另外,当“空!”实际上有效,我仍然可以点击链接(上面的ItemLink);如何禁用此案例的点击事件?
答案 0 :(得分:0)
我昨晚发布了一篇关于如何扩展ListBox控件以获得空数据模板的巧合。它应该很容易扩展到像Panorama或Pivot控件这样的东西。
基本理论是您使用“无项目文本”进行内容控制,并根据ListBox是否包含项目来控制它和ListBox的可见性。
您可以在Extending the WP7 ListBox处阅读。
答案 1 :(得分:0)
除了Nigel的扩展ListBox之外,您至少还有几种可能的解决方案: