WP8、VS2012...我正在使用 msdn 本地数据库示例作为基础。
这是我目前的设置,那里有 75%...
我有 MainPage pivot > listbox AllItems 显示数据库中的所有当前项目:
XAML
<ListBox
SelectionChanged="OpenWinePage_Click"
x:Name="allItemsListBox"
ItemsSource="{Binding AllItems}"
Margin="12,2,-20,-2" Width="440"
ItemTemplate="{StaticResource WineListBoxItemTemplate}" />
我希望能够单击其中一个项目,即 Mark Ryan,并且只有该项目显示在详细信息页面中:
代码 OpenWinePage_Click 的背后是:
private void OpenWinePage_Click(object sender, EventArgs e)
{
// Capture selected item data
_selectedItem = (sender as ListBox).SelectedItem;
if (_selectedItem != null)
{
// Send ID of selected contact
string dest = "/WinePage.xaml?toDoItemId=" + ((ToDoItem)_selectedItem).ToDoItemId;
NavigationService.Navigate(new Uri(dest, UriKind.Relative));
}
}
当 WinePage.xaml 打开时,显示所选项目的 xaml 是:
<ListBox
x:Name="WinePageDetails"
Margin="12, 0, 12, 0" Width="440"
ItemsSource="{Binding AllItems}" <!--I DON'T KNOW WHAT TO BIND HERE TO ONLY SHOW SELECTED ITEM-->
ItemTemplate="{StaticResource WinePageListBoxItemTemplate}" />
所以我得到了详细信息页面中的所有项目,而不仅仅是 1 个选定的项目:
在我的 ToDoViewModel.cs 中,我尝试绑定以下内容?...
// All items.
private ObservableCollection<ToDoItem> _allItems;
public ObservableCollection<ToDoItem> AllItems
{
get { return _allItems; }
set
{
_allItems = value;
NotifyPropertyChanged("AllItems");
}
}
// To-do items associated with the red category.
private ObservableCollection<ToDoItem> _redItems;
public ObservableCollection<ToDoItem> RedItems
{
get { return _redItems; }
set
{
_redItems = value;
NotifyPropertyChanged("RedItems");
}
}...et al pivots
我是否需要创建另一个仅指向一个项目的可观察集合,以便我可以绑定到它?
这是一个绑定问题吗?数据库问题?如何在我的详细信息页面上只显示一个选定的项目?
非常感谢您的帮助!
R