LiveBoard.ViewModel.MainViewModel.MainViewModel C# (CSharp) Метод

MainViewModel() публичный Метод

Initializes a new instance of the MainViewModel class.
public MainViewModel ( ) : System
Результат System
		public MainViewModel()
		{
			////if (IsInDesignMode)
			////{
			////    // Code runs in Blend --> create design time data.
			////}
			////else
			////{
			////    // Code runs "for real"
			////}

			/* 쇼 동작 원리: 시작
			 * 1. 로딩.
			 * 2. MainViewModel.Play는 ActiveBoard.Start를 호출하고 이를 통해 첫 페이지 로딩 후 EVT_STARTING 전송. Starting으로 ShowPage Navigate.
			 * 3. ShowPage에서 이 메시지로 ActiveBoard의 CurrentPage를 로딩하고 그에 맞는 XAML 로딩.
			 * 4. 내부에 XAML이 EVT_LOADED 로딩.
			 * 5. 그에 대한 메시지로 현재 페이지에 대한 RemainedSecond를 셋팅.
			 * 6. tick마다 --RemainedSecond.
			 * 7. RemainedSecond < 0  이 되면 MoveNext..
			 * 
			 * 총 메시지는 3번: ready, loaded, start.
			*/
			/* 쇼 동작원리: 종료
			 * 1. MainViewModel에서 타이머 종료, 첫페이지 돌리기, Finishing 명령 전송.
			 * 2. ShowPage 에서 이를 통해 Finished 및 Page Close.
			 * */

			_timer = new DispatcherTimer();
			_timer.Tick += PlayTimerEventHandler;
			_timer.Interval = new TimeSpan(0, 0, 1);

			Messenger.Default.Register<GenericMessage<LbMessage>>(this, message =>
			{
				Debug.WriteLine("* MainViewModel Received Message: " + message.Content.MessageType.ToString());
				switch (message.Content.MessageType)
				{
					case LbMessageType.EVT_SHOW_FINISHING:
						Stop(ActiveBoard);
						break;
					case LbMessageType.EVT_PAGE_STARTED:
						// 페이지 장착 완료.
						CurrentRemainedSecond = (int)CurrentPage.Duration.TotalSeconds;
						CurrentPageStarted = true;

						_timer.Start();
						break;
					case LbMessageType.EVT_SHOW_STARTED:
						// 첫페이지 로딩.
						ActiveBoard.Start();
						CurrentPage = ActiveBoard.Board.Pages[ActiveBoard.CurrentIndex];
						break;
					case LbMessageType.EVT_PAGE_CREATING:
						// 페이지 추가 명령을 받았을 때.
						var page = generatePageFromTemaplate(message.Content.Data as LbTemplate);
						ActiveBoard.Board.Pages.Add(page);
						break;
					case LbMessageType.EVT_PAGE_FINISHED:
						CurrentRemainedSecond = 0;
						CurrentPageElapsedRatio = 0;
						break;
				}
			});

			// 초기화하면서 TemplateList.xml 파일을 로딩한다.
			Templates = new TemplateListViewModel();
		}