Я создал Библиотека WP класса BusinessLogic проект, который состоит из этих трех классовПочему мой WP эмулятор останавливается на SplashScreen
1) бутылки класса
namespace BusinessLogic
{
public class Bottle : INotifyPropertyChanged
{
// Due to INotifyPropertyChanged interface
public event PropertyChangedEventHandler PropertyChanged;
// Proprietà Title
private string title;
public string Title
{
set
{
if (title != value)
{
title = value;
OnPropertyChanged("Title");
}
}
get
{
return title;
}
}
// Proprietà PhotoFileName
private string photoFileName;
public string PhotoFileName
{
set
{
if (photoFileName != value)
{
photoFileName = value;
OnPropertyChanged("PhotoFileName");
}
}
get
{
return photoFileName;
}
}
protected virtual void OnPropertyChanged(string propChanged)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propChanged));
}
}
}
2) Бутылки класса
namespace BusinessLogic
{
public class Bottles : INotifyPropertyChanged
{
// Due to INotifyPropertyChanged interface
public event PropertyChangedEventHandler PropertyChanged;
// Proprietà MainTitle
private string mainTitle;
public string MainTitle
{
set
{
if (mainTitle != value)
{
mainTitle = value;
OnPropertyChanged("MainTitle");
}
}
get
{
return mainTitle;
}
}
// Proprietà bottles
private ObservableCollection<Bottle> bottleSet = new ObservableCollection<Bottle>();
public ObservableCollection<Bottle> BottleSet
{
set
{
if (bottleSet != value)
{
bottleSet = value;
OnPropertyChanged("BottleSet");
}
}
get { return bottleSet; }
}
protected virtual void OnPropertyChanged(string propChanged)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propChanged));
}
}
}
3) BottlesPresenter Класс
namespace BusinessLogic
{
public class BottlesPresenter : INotifyPropertyChanged
{
// Due to INotifyPropertyChanged interface
public event PropertyChangedEventHandler PropertyChanged;
// Proprietà BottleMatrix
private Bottles bottlesMatrix;
public Bottles BottlesMatrix
{
protected set
{
if (bottlesMatrix != value)
{
bottlesMatrix = value;
OnPropertyChanged("BottlesMatrix");
}
}
get { return bottlesMatrix; }
}
public BottlesPresenter()
{
XmlSerializer xml = new XmlSerializer(typeof(Bottles));
using (StreamReader fileReader = new StreamReader(@"C:\Stuff\WindowsPhone\AppLearningHowTo2\AppLearningHowTo2\DAL\DB.xml"))
{
BottlesMatrix = (Bottles)xml.Deserialize(fileReader);
}
}
protected virtual void OnPropertyChanged(string propChanged)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propChanged));
}
}
}
BottlePresenter конструктор должен десериализации из файла XML, расположенного в файловой системе. Он содержит следующие теги
<?xml version="1.0"?>
<Bottles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MainTitle>MainTitle</MainTitle>
<Bottleset>
<Bottle>
<Title>Title1</Title>
<PhotoFileName>PhotoFileName1</PhotoFileName>
</Bottle>
<Bottle>
<Title>Title2</Title>
<PhotoFileName>PhotoFileName2</PhotoFileName>
</Bottle>
</Bottleset>
</Bottles>
Затем я создал WP приложения, и я сделал ссылку на библиотеку проекта BusinessLogic.dll.
В файле MainPage.xaml я помещал декларации XML пространства имен
xmlns:businesslogic="clr-namespace:BusinessLogic;assembly=BusinessLogic"
Я тогда инстанцированный в BottlesPresenter класс в коллекции MainPage.xaml ресурсов
<phone:PhoneApplicationPage.Resources>
<businesslogic:BottlesPresenter x:Key="bottlesPresenter" />
</phone:PhoneApplicationPage.Resources>
И, наконец, положить TextBlock в области контента со связыванием с этим ресурсом:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{Binding Source={StaticResource bottlesPresenter},
Path=Bottles.MainTitle}" />
К сожалению, я запускаю отладчик, включающий эмулятор, доходит до заставки и не идет дальше.
В двух словах: я не могу связаться, чтобы создать экземпляр класса BottlesPresenter.
Я несколько недель стучал головой о стену, не найдя решения.
Пожалуйста, может кто-нибудь дать мне руку?
Большое спасибо
Антонио
Любой выход отладки? Вы достигаете контрольных точек? Если вы удалите ссылки на бутылки, то Presenter по крайней мере загрузит первую страницу? Можете ли вы опубликовать полный текст? –
Привет, Мэтт. Нет отладочного выхода и не достигнуты точки останова. Удаляя ссылки, первая страница загружается без каких-либо проблем. Что вы имеете в виду с «post full repro»? Я не нашел способ загрузить все решение на StackOverFlow. В любом случае, если вы дадите мне свой адрес электронной почты, я могу отправить вам решение. Многое много Спасибо. Антонио – LarAnto