클래스의 인스턴스가 이미 사용 가능한지 여부를 알 수 있도록 명시 적으로 코드를 작성할 수 있는지 여부를 알고 싶습니다. 인스턴스를 사용할 수있는 경우이를 처리 한 다음 새 인스턴스를 처리 할 수 있습니다. 클래스의 생성이 가능합니다 WPF와 Prism에서 매우 제한된 지식으로 프로젝트를 진행하고 있습니다. 도움이 될 것입니다. 클래스 인스턴스가 이미 존재하는지 확인하십시오.
public class BillingSectionModule : IModule
{
private IRegionManager _regionManager;
private IUnityContainer _unityContainer;
public BillingSectionModule(IRegionManager regionManager, IUnityContainer unityContainer)
{
this._regionManager = regionManager;
this._unityContainer = unityContainer;
}
#region IModule Members
public void Initialize()
{
_unityContainer.RegisterType<IBillingSectionViewModel, BillingSectionViewModel>();
_unityContainer.RegisterType<IBillingSectionView, BillingSectionView>();
_unityContainer.RegisterType<IBillingSectionAdvanceBillingViewModel, BillingSectionAdvanceBillingViewModel>();
_unityContainer.RegisterType<IBillingSectionAdvanceBillingView, BillingSectionAdvanceBillingView>();
_regionManager.RegisterViewWithRegion(RegionNames.BillingOptionRegion, typeof(IBillingSectionView));
}
#endregion
}
이
내가 작성 쉬게 모듈 클래스입니다 ... 단일 모듈과 관련된 두 개의보기가 볼 수 있듯이. 그래서 그래서 이제까지public void ChangeToAdvanceRegion(IRegionManager regionManager, IUnityContainer unityContainer)
{
//change Billing Area
var BillingAreaview = ServiceLocator.Current.GetInstance<IBillingSectionAdvanceView>();
if (!regionManager.Regions[RegionNames.BillingOptionRegion].Views.Contains(BillingAreaview))
regionManager.Regions[RegionNames.BillingOptionRegion].Add(BillingAreaview);
regionManager.Regions[RegionNames.BillingOptionRegion].Activate(BillingAreaview);
//reset the values
_eventAggregator.GetEvent<NewItemOrderEvent>().Publish("CHANGEADVANCEITEMFROMREGION");
}
public void ChangeToNewOrderRegion(IRegionManager regionManager, IUnityContainer unityContainer)
{
//change Billing Area
var BillingAreaview = ServiceLocator.Current.GetInstance<IBillingSectionView>();
if (!regionManager.Regions[RegionNames.BillingOptionRegion].Views.Contains(BillingAreaview))
regionManager.Regions[RegionNames.BillingOptionRegion].Add(BillingAreaview);
regionManager.Regions[RegionNames.BillingOptionRegion].Activate(BillingAreaview);
//reset the values
_eventAggregator.GetEvent<NewItemOrderEvent>().Publish("CHANGENEWITEMFROMREGION");
}
때 먼저 다음보기 모델의 이전에 생성 된 인스턴스가 배치되어 있지 않은 .. 두번째 .. 그러나 새로 생성되는 functin 상기 호출 적 ... 그래서 내가 n 번째 시간을 호출 할 때 .. 뷰 모델 내부의 함수는 n 개의 tyms로 실행됩니다. 응용 프로그램에서 부하 문제를 생성 ....
당신은 싱글 톤 패턴을 언급하고 있습니까? http://csharpindepth.com/articles/general/singleton.aspx – David
@David 싱글 톤 패턴은 바로 같은 인스턴스를 유지합니까? –
매번 새로운 인스턴스를 갖고 싶지만 이미 생성 된 인스턴스를 처리하고 싶습니다. –