public static T GetViewModel <T>() where T : ObservableViewModel, new() { if (ViewModels == null) { ViewModels = new Dictionary <string, ObservableViewModel>(); } var name = typeof(T).Name; if (ViewModels.ContainsKey(name)) { try { return((T)ViewModels[name]); } catch { ViewModels[name] = new T(); FileStore.DeleteAsync(AppData.VMDictionary).ContinueOn(); return((T)ViewModels[name]); } } else { var obj = new T(); obj.OnInit(); ViewModels.Add(name, obj); return(obj); } }
/// <summary> /// ビューに指定ビューモデルを登録していく /// </summary> void SetContext(View view) { if (ViewModels.ContainsKey(view.VMName)) { view.DataContext = ViewModels[view.VMName]; view.UpdateAllParam(); } }
public ViewModelBase GetViewModel(Type vmtype, string key) { ViewModelBase rst = null; string vmkey = GetViewModelKey(vmtype, key); if (ViewModels.ContainsKey(vmkey)) { rst = ViewModels[vmkey]; } return(rst); }
public TViewModel GetViewModel <TViewModel>(string vmKey) where TViewModel : ViewModelBase { TViewModel rst = null; string typekey = GetViewModelKey(typeof(TViewModel), vmKey); if (ViewModels.ContainsKey(typekey)) { rst = ViewModels[typekey] as TViewModel; } return(rst); }
public void UnRegisterViewModel(Type vmtype, string vmKey) { string typekey = GetViewModelKey(vmtype, vmKey); if (ViewModels.ContainsKey(typekey)) { ViewModelBase vm = ViewModels[typekey]; vm.Cleanup(); ViewModels.Remove(typekey); GC.SuppressFinalize(vm); } }
public ViewModel this[Type type] { get { if (ViewModels.ContainsKey(type.Name)) { return(ViewModels[type.Name]); } return(Container.Resolve(type) as ViewModel); } set { ViewModels[type.Name] = value; } }
private void HandlePlayerDisposedEvent(Event disposedEvent) { _cachedCommand = null; _playerInitialised = false; if (disposedEvent.EventArgs != null && disposedEvent.ContainsEventArg("NodeId")) { string viewModelIdAsString = disposedEvent.GetEventArgValue("NodeId"); var viewModelId = new Guid(viewModelIdAsString); if (ViewModels.ContainsKey(viewModelId)) { VideoInfo viewModelVideoInfo = ViewModels[viewModelId]; _isChangedByController = true; viewModelVideoInfo.Status = VideoState.Pause; } } }
public TViewModel RegisterViewModel <TViewModel>(string vmKey) where TViewModel : ViewModelBase, new() { TViewModel rst; string typekey = GetViewModelKey(typeof(TViewModel), vmKey); if (ViewModels.ContainsKey(typekey)) { rst = ViewModels[typekey] as TViewModel; } else { rst = new TViewModel(); ViewModels.Add(typekey, rst); } return(rst); }
private void HandledCurrentStateChanged(Event receivedEvent) { if (!HasVideo) { HasVideo = true; } if (receivedEvent.EventArgs != null && receivedEvent.ContainsEventArg("State")) { string state = receivedEvent.GetEventArgValue("State"); if (receivedEvent.ContainsEventArg("NodeId")) { string viewModelIdAsString = receivedEvent.GetEventArgValue("NodeId"); if (!string.IsNullOrEmpty(state) && !string.IsNullOrEmpty(viewModelIdAsString)) { var neutralisedState = state.ToLower(); var viewModelId = new Guid(viewModelIdAsString); if (ViewModels.ContainsKey(viewModelId)) { VideoInfo viewModelVideoInfo = ViewModels[viewModelId]; switch (neutralisedState) { case "idle": _isChangedByController = true; viewModelVideoInfo.Status = VideoState.Pause; break; case "playing": _isChangedByController = true; viewModelVideoInfo.Status = VideoState.Playing; break; case "buffering": _isChangedByController = true; viewModelVideoInfo.Status = VideoState.Playing; break; } } } } } }
public static void SetViewModel <T>(T obj) where T : ObservableViewModel { if (ViewModels == null) { ViewModels = new Dictionary <string, ObservableViewModel>(); } var name = typeof(T).Name; if (ViewModels.ContainsKey(name)) { ViewModels[name] = obj; } else { ViewModels.Add(name, obj); } }
public ViewModel this[string identifier] { get { if (!ViewModels.ContainsKey(identifier)) { return(null);//Container.Resolve<ViewModel>(identifier); } return(ViewModels[identifier]); } set { if (!ViewModels.ContainsKey(identifier)) { ViewModels.Add(identifier, value); value.Identifier = identifier; } } }