/
githubmirror
/
PowerToys
Обзор
Документация
Войти
/
githubmirror
/
PowerToys
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/modules/cmdpal/ext/SamplePagesExtension/SamplesListPage.cs
191 строка
7 KB
Michael Jolley
CmdPal: Subscribe DetailsViewModel to PropChanged for live pane updates (#48070)
07 июл 2026, 00:18
Не верифицирован
07 июл 2026, 00:18
0790674
Код
Авторство
О чём код?
// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using Microsoft.CommandPalette.Extensions; using Microsoft.CommandPalette.Extensions.Toolkit; using SamplePagesExtension.Pages; using SamplePagesExtension.Pages.IssueSpecificPages; namespace SamplePagesExtension; public partial class SamplesListPage : ListPage { private readonly IListItem[] _commands = [ // List pages new ListItem(new SampleListPage()) { Title = "List Page Sample Command", Subtitle = "Display a list of items", }, new ListItem(new SampleToastsPage()) { Title = "Toast Notification Samples", Subtitle = "Demonstrates CommandResult.ShowToast and lets you send custom toasts", }, new ListItem(new SampleListPageWithDetails()) { Title = "List Page With Details", Subtitle = "A list of items, each with additional details to display", }, new ListItem(new SampleLiveDetailsPage()) { Title = "Live Updating Details", Subtitle = "Details pane updates in real time without reselecting", }, new ListItem(new SectionsIndexPage()) { Title = "List Pages With Sections", Subtitle = "A list of items, with sections header", }, new ListItem(new SampleUpdatingItemsPage()) { Title = "List page with items that change", Subtitle = "The items on the list update themselves in real time", }, new ListItem(new SampleDynamicListPage()) { Title = "Dynamic List Page Command", Subtitle = "Changes the list of items in response to the typed query", }, new ListItem(new SampleGridsListPage()) { Title = "Grid views and galleries", Subtitle = "Displays items as a gallery", }, new ListItem(new OnLoadPage()) { Title = "Demo of OnLoad/OnUnload", Subtitle = "Changes the list of items every time the page is opened / closed", }, new ListItem(new SampleIconPage()) { Title = "Sample Icon Page", Subtitle = "A demo of using icons in various ways", }, new ListItem(new SlowListPage()) { Title = "Slow loading list page", Subtitle = "A demo of a list page that takes a while to load", }, new ListItem(new SampleSuggestionsPage()) { Title = "Sample Prefix Suggestions", Subtitle = "A demo of using 'nested' pages to provide 'suggestions' as the user types", }, // Content pages new ListItem(new SampleContentPage()) { Title = "Sample content page", Subtitle = "Display mixed forms, markdown, and other types of content", }, new ListItem(new SamplePlainTextContentPage()) { Title = "Sample plain text content page", Subtitle = "Display a page of plain text content", }, new ListItem(new SampleImageContentPage()) { Title = "Sample image content page", Subtitle = "Display a page with an image", }, new ListItem(new SampleTreeContentPage()) { Title = "Sample nested content", Subtitle = "Example of nesting a tree of content", }, new ListItem(new SampleCommentsPage()) { Title = "Sample of nested comments", Subtitle = "Demo of using nested trees of content to create a comment thread-like experience", Icon = new IconInfo("\uE90A"), // Comment }, new ListItem(new SampleMarkdownPage()) { Title = "Markdown Page Sample Command", Subtitle = "Display a page of rendered markdown", }, new ListItem(new SampleMarkdownManyBodies()) { Title = "Markdown with multiple blocks", Subtitle = "A page with multiple blocks of rendered markdown", }, new ListItem(new SampleMarkdownDetails()) { Title = "Markdown with details", Subtitle = "A page with markdown and details", }, new ListItem(new SampleMarkdownImagesPage()) { Title = "Markdown with images", Subtitle = "A page with rendered markdown and images", Icon = new IconInfo("\uee71"), }, // Settings helpers new ListItem(new SampleSettingsPage()) { Title = "Sample settings page", Subtitle = "A demo of the settings helpers", }, // Data package samples new ListItem(new SampleDataTransferPage()) { Title = "Clipboard and Drag-and-Drop Demo", Subtitle = "Demonstrates clipboard integration and drag-and-drop functionality", }, // Parameter pages new ListItem(new SimpleParameterTest()) { Title = "Sample parameters page", Subtitle = "A demo of a command that takes simple parameters", }, new ListItem(new ButtonParameterTest()) { Title = "Button parameters page", Subtitle = "A demo of a command that takes simple parameters", }, new ListItem(new MixedParamTestPage(stringFirst: true)) { Title = "Mixed parameter types (string first)", Subtitle = "A demo of a command that takes multiple types of parameters", }, new ListItem(new MixedParamTestPage(stringFirst: false)) { Title = "Mixed parameter types (file first)", Subtitle = "A demo of a command that takes multiple types of parameters", }, // List parameters aren't yet supported new ListItem(new CreateNoteParametersPage()) { Title = "Create note sample", Subtitle = "A parameter page with both a string and list parameter", }, // Evil edge cases // Anything weird that might break the palette - put that in here. new ListItem(new EvilSamplesPage()) { Title = "Evil samples", Subtitle = "Samples designed to break the palette in many different evil ways", }, new ListItem(new AllIssueSamplesIndexPage()) { Title = "Issue-specific samples", Subtitle = "Samples designed to reproduce specific issues", } ]; public SamplesListPage() { Name = "Samples"; Icon = new IconInfo("\ue946"); // Info } public override IListItem[] GetItems() => _commands; }