{"id":17664389,"url":"https://github.com/woodcharp/avaloniadialogmanagerdemo","last_synced_at":"2026-04-29T17:38:44.849Z","repository":{"id":259229854,"uuid":"877347919","full_name":"WoodCharp/AvaloniaDialogManagerDemo","owner":"WoodCharp","description":"Demo of dialog manager in AvaloniaUI","archived":false,"fork":false,"pushed_at":"2024-10-28T17:53:58.000Z","size":107,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T12:16:43.461Z","etag":null,"topics":["avaloniaui","dialogs","messagebox"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WoodCharp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-23T13:53:36.000Z","updated_at":"2024-11-04T00:22:38.000Z","dependencies_parsed_at":"2024-12-11T16:26:13.624Z","dependency_job_id":"b3220b8a-c7ad-49cc-b808-f6ae4cad2df8","html_url":"https://github.com/WoodCharp/AvaloniaDialogManagerDemo","commit_stats":{"total_commits":4,"total_committers":1,"mean_commits":4.0,"dds":0.0,"last_synced_commit":"420b12ca691db3ed4bceb3da206b7059ca185de1"},"previous_names":["woodcharp/avaloniadialogmanagerdemo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoodCharp%2FAvaloniaDialogManagerDemo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoodCharp%2FAvaloniaDialogManagerDemo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoodCharp%2FAvaloniaDialogManagerDemo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoodCharp%2FAvaloniaDialogManagerDemo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WoodCharp","download_url":"https://codeload.github.com/WoodCharp/AvaloniaDialogManagerDemo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246314151,"owners_count":20757463,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avaloniaui","dialogs","messagebox"],"created_at":"2024-10-23T20:05:14.547Z","updated_at":"2026-04-29T17:38:44.792Z","avatar_url":"https://github.com/WoodCharp.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dialog manager demo in AvaloniaUI\nMy attempt to add dialogs or message boxes to my AvaloniaUI application project.\n\n* MVVM\n* Can show dialog within the dialog\n* Create your own kind of dialog window and it's content\n\n\u003cimg src=\"https://github.com/user-attachments/assets/ad5a21d6-64e0-4c5f-ae84-ba71bb43911e\" width=\"385px\" align=\"center\"\u003e\n\n## How it's used in the demo\n\n```C#\nusing Avalonia.Collections;\nusing AvaloniaDialogManagerDemo.Models;\nusing CommunityToolkit.Mvvm.ComponentModel;\nusing CommunityToolkit.Mvvm.Input;\nusing System.Threading.Tasks;\n\nnamespace AvaloniaDialogManagerDemo.ViewModels\n{\n    public partial class MainWindowViewModel : ViewModelBase\n    {\n        [ObservableProperty]\n        private ItemModel? selectedItem;\n        [ObservableProperty]\n        private AvaloniaList\u003cItemModel\u003e items;\n        [ObservableProperty]\n        private bool isItemSelected = false;\n\n        public MainWindowViewModel()\n        {\n            items = new AvaloniaList\u003cItemModel\u003e();\n        }\n\n        partial void OnSelectedItemChanged(ItemModel? value)\n        {\n            IsItemSelected = value != null;\n        }\n\n        [RelayCommand]\n        private async Task New()\n        {\n            var result = await DialogManager.ShowDialog(new DialogItemViewModel(null), \"Create new item\", [\"Ok\", \"Cancel\"]);\n            if (result.ButtonPressed == \"Ok\" \u0026\u0026 result.ReturningObject != null)\n            {\n                Items.Add((ItemModel)result.ReturningObject);\n            }\n        }\n\n        [RelayCommand]\n        private async Task Edit()\n        {\n            if (SelectedItem == null) return;\n\n            var result = await DialogManager.ShowDialog(new DialogItemViewModel(SelectedItem), \"Edit item\", [\"Ok\", \"Cancel\"]);\n\n            string oldId = SelectedItem.ID;\n\n            if (result.ButtonPressed == \"Ok\" \u0026\u0026 result.ReturningObject != null)\n            {\n                for(int i = 0; i \u003c Items.Count; i++)\n                {\n                    if (Items[i].ID == oldId)\n                    {\n                        Items.RemoveAt(i);\n                        Items.Insert(i, (ItemModel)result.ReturningObject);\n                        SelectedItem = (ItemModel)result.ReturningObject;\n                        break;\n                    }\n                }\n            }\n        }\n\n        [RelayCommand]\n        private async Task Delete()\n        {\n            if (SelectedItem == null) return;\n\n            var result = await DialogManager.ShowDialog(new DialogMessageViewModel($\"Delete {SelectedItem.Name}?\"), \"Delete item\", [\"Ok\", \"Cancel\"]);\n\n            if(result.ButtonPressed == \"Ok\")\n            {\n                Items.Remove(SelectedItem);\n                SelectedItem = null;\n            }\n        }\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoodcharp%2Favaloniadialogmanagerdemo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoodcharp%2Favaloniadialogmanagerdemo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoodcharp%2Favaloniadialogmanagerdemo/lists"}