2010-01-30 5 views
5

일단 사용자 프로필 정보를로드하는 싱글 톤이 있습니다. 응용 프로그램의 요소를 내 SL3 응용 프로그램의 응용 프로그램 수준 리소스로 만들어 응용 프로그램의 요소를 바인딩 할 수 있습니다.싱글 톤에 대한 전역 액세스를위한 Silverlight 응용 프로그램 리소스

instantiaion의 내 코드 버전은 간단한

UserProfile x = UserProfile.GetInstance(); 
내가 app.xaml 파일과 WPF에서 XAML에서이 작업을 수행 할 수 있도록하려는

우리는 ObjectDataProvider 그래서 난

같은 것을 표현할 수 있습니다
<ObjectDataProvider MethodName="GetInstance" 
ObjectType="{x:Type local:UserProfile}" x:Key="CurrentUserProfile"/> 

SL3에서 올바른 구현 방법을 찾기 위해 고심하고 있습니다.

답변

3

실버 라이트는 ObjectDataProvider이 없습니다. 게으른 인스턴스 생성과 같은 기능이 필요한 경우이를 처리 할 자신 만의 클래스를 만들어야합니다. 실제로 이러한 기능이 필요하지 않으면 단순히 시작에 App.ResourcesUserProfile의 인스턴스를 추가 : -

private void Application_Startup(object sender, StartupEventArgs e) 
{ 
    Resources.Add("CurrentUserProfile", UserProfile.GetInstance()); 
    RootVisual = new MainPage(); 
} 
+0

순수한 xaml에서이 작업을 수행하기를 정말로 바랬지 만 누군가 xaml 기반 솔루션을 얻지 못하면 곧 체크 표시를합니다 ... 감사합니다. – keithwarren7

0

Silverlight has no ObjectDataProvider. 당신이 지적으로, 당신은 당신의 실버 라이트 개체의 DataContext를 사용할 수 있습니다 말했다

.....

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

무엇 당신이 다음에 반대로 몇 가지 실제 응용 프로그램 데이터에 추가 된 UserControls 등에의 DataContext를 할당해야하는 경우 발생 주변 사용자 정보? – AnthonyWJones

관련 문제