Ресурсы приложений Silverlight для глобального доступа к одиночке - PullRequest
5 голосов
/ 30 января 2010

У меня есть одноэлементный файл, который после нажатия загрузит информацию профиля пользователя, я хочу сделать его ресурсом уровня приложения в моем приложении SL3, чтобы элементы в приложении могли связываться с ним.

Моя версия кода экземпляра проста

UserProfile x = UserProfile.GetInstance();

Я хочу иметь возможность сделать это в xaml в файле app.xaml, а в WPF у нас есть ObjectDataProvider, поэтому я могу выразить что-то вроде

<ObjectDataProvider MethodName="GetInstance" 
ObjectType="{x:Type local:UserProfile}" x:Key="CurrentUserProfile"/>

Я изо всех сил пытаюсь найти правильную реализацию для этого в SL3.

Ответы [ 2 ]

3 голосов
/ 30 января 2010

Как вы указали, Silverlight не имеет ObjectDataProvider. Если вам нужна такая функция, как ленивая реализация, вам нужно создать собственный класс для ее обработки. Если вам не нужны эти функции, просто добавьте экземпляр UserProfile в App.Resources при запуске: -

 private void Application_Startup(object sender, StartupEventArgs e)
 {
    Resources.Add("CurrentUserProfile", UserProfile.GetInstance());
    RootVisual = new MainPage();
 }
0 голосов
/ 30 января 2010

Silverlight не имеет ObjectDataProvider .

Тем не менее, вы можете использовать DataContext вашего объекта Silverlight .....

Application.DataContext = UserProfile.GetInstance();
...