2013-05-19 3 views
1

프리즘 응용 프로그램에서보기의 단일 공유 인스턴스를 만들고 싶습니다. 처음으로 탐색하려고 할 때 제대로 작동하지만 두 번째 시도가되면 작동하지 않습니다. PartCreationPolicyShared에서 NonShared으로 변경하면 작동하지만 새 인스턴스를 제공합니다. 이 작업을 수행 할 수있는 다른 방법이 있습니까?프리즘에있는 [PartCreationPolicy (CreationPolicy.Shared)]의 탐색 기능이 작동하지 않습니다.

[Export(ViewNames.AppView)] 
[PartCreationPolicy(CreationPolicy.Shared)] 
public partial class AppMain : UserControl 
{ 
    public AppMain() 
    { 
     InitializeComponent(); 
    } 
} 
+1

"작동하지 않는다"는 것이 더 구체적 일 수 있습니까? 왜 이것이 싱글 톤이되기를 원하는지 설명하고 싶을 수도 있습니다. – Matt

+0

U가 실제 문제를 발견했을 수 있습니다 .http : //stackoverflow.com/questions/16741667/exception-region-with-the-given-name-is-already-registered –

답변

0

프리즘의 KeepAlive 값으로 재생하고 싶을 수 있습니다. 이 값은 사용자가 멀리 이동할 때보기를 영역에서 제거해야하는지 여부를 결정합니다.

[Export(ViewNames.AppView)] 
[PartCreationPolicy(CreationPolicy.Shared)] 
public partial class AppMain : UserControl, IRegionMemberLifetime 
{ 
    public AppMain() 
    { 
     InitializeComponent(); 
    } 

    public bool KeepAlive 
    { 
     get { return false; } 
    } 
} 

당신은 KeepAlive 속성에 대한 좀 더 읽을 수 IRegionMemberLifetime 인터페이스를 구현하는 RegionMemberLifetime 속성

[RegionMemberLifetime(KeepAlive = false)] 
[Export(ViewNames.AppView)] 
[PartCreationPolicy(CreationPolicy.Shared)] 
public partial class AppMain : UserControl 
{ 
    public AppMain() 
    { 
     InitializeComponent(); 
    } 
} 
  • 를 사용

    1. : 당신이이 일 개의 방법이 here.