public override void CreateViewModel()
        {
            if (UseEmptyViewModel || string.IsNullOrEmpty(ViewModelInitValueJson))
            {
                VM = new GameCoreViewModel();
            }
            else
            {
                VM = JsonConvert.DeserializeObject <GameCoreViewModel> (ViewModelInitValueJson);
                ViewModelPropertyRef();
            }

            VM.AddHostView(ViewModelBase.DefaultViewBaseKey, this);
        }
        public override void Initialize(ViewModelBase viewModel)
        {
            if (viewModel != null)
            {
                VM = (GameCoreViewModel)viewModel;
                VM.AddHostView(ViewModelBase.DefaultViewBaseKey, this);
            }
            else
            {
                if (AutoCreateViewModel && VM == null)
                {
                    CreateViewModel();
                }
            }

            base.Initialize(VM);
        }