Back to list
manx

winui-patterns

by manx

0🍴 0📅 Dec 8, 2025

SKILL.md


name: winui-patterns description: WinUI 3 and XAML patterns for the Pomodoro Time Tracker. Activates when working with ViewModels, XAML pages, data binding, or UI components. allowed-tools:

  • Read
  • Glob
  • Grep

WinUI 3 Patterns Skill

Activates when: ViewModels, XAML, data binding, or UI components mentioned.

Shared WinUI Guidelines

@/.claude/prompts/winui/mvvm/no-value-converters.md @/.claude/prompts/winui/fundamentals/page-setup.md @/.claude/prompts/winui/mvvm/dialog-callbacks.md @/.claude/prompts/winui/mvvm/timer-pattern.md @~/.claude/prompts/dotnet/fundamentals/async-await.md


Project-Specific Conventions

CRITICAL: No Value Converters

// ❌ NEVER
Visibility="{x:Bind Converter={StaticResource BoolToVisibility}}"

// ✅ ALWAYS
public bool IsVisible => SomeCondition;
Visibility="{x:Bind ViewModel.IsVisible, Mode=OneWay}"

WinUI 3's x:Bind auto-converts bool to Visibility.

Always Use x:Bind

<!-- ✅ CORRECT - Compile-time checked -->
<TextBox Text="{x:Bind ViewModel.Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />

<!-- ❌ WRONG - Runtime binding -->
<TextBox Text="{Binding Name, Mode=TwoWay}" />

Binding Modes

ModeUse Case
OneTimeStatic data
OneWayDisplay-only
TwoWayUser input

Key Namespaces

using PomodoroTimeTracker.ViewModels;
using PomodoroTimeTracker.Application.DTOs;
using PomodoroTimeTracker.Application.Interfaces;

DI Registration

// ViewModels - Transient (CRUD) or Singleton (Timers)
services.AddTransient<ClientDetailViewModel>();
services.AddSingleton<PomodoroViewModel>();

// UI Services - Singleton
services.AddSingleton<INavigationService, NavigationService>();
services.AddSingleton<IDialogService, DialogService>();

Common Mistakes to Avoid

  1. InitializeComponent before ViewModel - ViewModel must exist first
  2. Binding instead of x:Bind - Always use x:Bind
  3. async void - Only for framework handlers
  4. Value converters - Use explicit properties instead
  5. XamlRoot missing - ContentDialog requires XamlRoot = this.XamlRoot

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon