/// <summary> /// Selects a demo in the demo list /// </summary> /// <param name="demoId">ID of the selected demo</param> public void SelectDemo(string demoId) { if (State.SelectedDemoId == demoId) { return; } var oldState = State; State = State.Clone(s => s.SelectedDemoId = demoId); var args = new StateChangedEventArgs(oldState, State); AppStateChanged?.Invoke(this, args); SelectedDemoChanged?.Invoke(this, args); }
/// <summary> /// Sets the list of demos /// </summary> /// <param name="demos">List of demos</param> public void SetDemoList(List <ComboDataItem> demos) { if (State.Demos == demos) { return; } var oldState = State; State = State.Clone(s => { s.Demos = demos; s.SelectedDemoId = demos.Count > 0 ? demos[0].Id : null; }); var args = new StateChangedEventArgs(oldState, State); AppStateChanged?.Invoke(this, args); DemoListChanged?.Invoke(this, args); SelectedDemoChanged?.Invoke(this, args); }