private void FunctionButtonList_ItemSelected(object sender, FunctionViewModel model) { BlockNavigator.SetFocus(sender as FrameworkElement, DialAreaControl); BlockNavigator.EnterNestedNavigator(DialAreaControl); if (_formState == FormState.DialAreaMode) { DialAreaControl.ReplaceSelectedItem(model); _hasUnsavedChanges = true; } else if (_formState == FormState.FunctionButtonsMode) { _functionsSelection = model; _hasUnsavedChanges = true; } DialAreaControl.Enable(); }
private void DialArea_ItemPicked(FrameworkElement sender, FunctionViewModel obj) { if (_formState == FormState.DialAreaMode) { _dialAreaSelection = DialAreaControl.Selection; DialAreaControl.Disable(); BlockNavigator.SetFocus(sender, FunctionButtonList.GetFirstItemElement()); } else if (_formState == FormState.FunctionButtonsMode) { DialAreaControl.ReplaceSelectedItem(_functionsSelection); DialAreaControl.Reset(); DialAreaControl.Disable(); BlockNavigator.SetFocus(sender, FunctionButtonList.GetFirstItemElement()); } }
private async void SaveChanges() { var data = DialAreaControl.GetData().ToArray(); var ctx = new SaveData.SaveData(); var profile = ctx.Profiles.First(p => p.Id == _editorFormData.Profile.Id); SaveData.Models.Function[] functions; { var functionIds = data.Select(p => p.Function.Id).ToArray(); functions = ctx.Functions.Where(p => functionIds.Contains(p.Id)).ToArray(); } foreach (var item in data) { item.Profile = profile; item.Function = functions.First(p => p.Id == item.Function.Id); } var existing = ctx.PanelButtons.Where(p => p.Profile.Id == profile.Id).ToArray(); ctx.PanelButtons.RemoveRange(existing); ctx.PanelButtons.AddRange(data); await ctx.SaveChangesAsync(); }
private void LoadProfile(EditorFormData data) { _editorFormData = data; DialAreaControl.LoadPanel(data.PanelButtons); }