public T GetDataContext <T>(string sceneName) { sceneName.ThrowIfNullOrEmpty(nameof(sceneName)); SceneItem sceneItem = GetSceneItem(sceneName); if (!(sceneItem.Content.DataContext is T control)) { throw new ArgumentException( $"Content of scene with name \"{sceneName}\" is not convertable to " + $"{typeof(T).FullName}.", nameof(sceneName) ); } return(control); }
public void AddScene(string sceneName, UserControl content) { sceneName.ThrowIfNullOrEmpty(nameof(sceneName)); content.ThrowIfNull(nameof(content)); if (Contains(sceneName)) { throw new ArgumentException( $"Scene with name \"{sceneName}\" has already been added to the scene " + $"collection.", nameof(sceneName) ); } var newScene = new SceneItem(sceneName, content); _sceneItems.Add(newScene); }