У меня проблемы с декларативной настройкой ItemsSource объекта ListBox, содержащегося в PivotItem, на простой странице Windows Phone 7.Я могу успешно установить ItemsSource в коде позади.
Вот фрагмент класса, который содержит ObservableCollection, к которому я хочу привязаться:
sealed class Database : INotifyPropertyChanged
{
//Declare Instance
private static readonly Database instance = new Database();
//Private Constructor
private Database() { }
//The entry point into this Database
public static Database Instance
{
get
{
return instance;
}
}
#region Collections corresponding with database tables
public ObservableCollection<Category> Categories { get; set; }
public ObservableCollection<CategoryType> CategoryTypes { get; set; }
А вот пример моегоXAML:
<ListBox x:Name="CategoriesListBox" Margin="0,0,-12,0" ItemsSource="{Binding Categories}" DisplayMemberPath="Name" />
На своей странице я попытался установить контекст данных следующим образом:
this.DataContext = Database.Instance;
Однако привязка не работает, если я явно не установил ItemsSource в коде следующим образом:
CategoriesListBox.ItemsSource = Database.Instance.Categories;
Я знаю, что я смогу сделать все это декларативно, однако я пробовал много разных способов задания декларативного ItemsSource (в дополнение к тому, что я подробно описал выше), и ни один из них не работает.
Может ли кто-нибудь мне помочь?
Дополнительная информация: Окна вывода во время выполнения показывают следующее: System.Windows.Data Ошибка: Невозможно получить значение «Категории» (тип «System.Collections.ObjectModel.ObservableCollection`1 [BTT.PinPointTime.Entities.Category] ') из «BTT.PinPointTime.WinPhone.Database» (тип «BTT.PinPointTime.WinPhone.Database»).BindingExpression: Path = 'Categories' DataItem = 'BTT.PinPointTime.WinPhone.Database' (HashCode = 99825759);Целевым элементом является 'System.Windows.Controls.ListBox' (Name = 'CategoriesListBox');Свойство target - «ItemsSource» (тип «System.Collections.IEnumerable»). System.MethodAccessException: попытка доступа к методу не удалась: BTT.PinPointTime.WinPhone.Database.get_Categories () в System.Reflection.RuntimeMethodInfo.InternalInvoke (Objectobj, BindingFlags invokeAttr