# TodoApp Sample A complete task management application demonstrating OpenMaui Linux capabilities with real-world XAML patterns. ## Features - **NavigationPage** - Full page navigation with back button support - **CollectionView** - Scrollable list with data binding and selection - **XAML Data Binding** - Value converters for dynamic styling - **DisplayAlert Dialogs** - Confirmation dialogs for delete actions - **Grid Layouts** - Complex layouts with star sizing for expanding content - **Entry & Editor** - Single and multi-line text input - **Border with RoundRectangle** - Modern card-style UI - **ToolbarItems** - Navigation bar actions ## Screenshots The app consists of three pages: 1. **TodoListPage** - Shows all tasks with completion status indicators 2. **NewTodoPage** - Create a new task with title and notes 3. **TodoDetailPage** - View/edit task details, mark complete, or delete ## Architecture ``` TodoApp/ ├── App.cs # Application entry with NavigationPage ├── Program.cs # Linux platform bootstrap ├── MauiProgram.cs # MAUI app builder ├── TodoItem.cs # Data model ├── TodoService.cs # In-memory data store ├── TodoListPage.xaml(.cs) # Main list view ├── NewTodoPage.xaml(.cs) # Create task page └── TodoDetailPage.xaml(.cs) # Task detail/edit page ``` ## XAML Highlights ### Value Converters The app uses custom converters for dynamic styling based on completion status: - `CompletedToColorConverter` - Gray text for completed items - `CompletedToTextDecorationsConverter` - Strikethrough for completed items - `CompletedToOpacityConverter` - Fade completed items - `AlternatingRowColorConverter` - Alternating background colors ### ResourceDictionary ```xml #5C6BC0 #26A69A #212121 ``` ### CollectionView with DataTemplate ```xml ``` ### Grid with Star Rows (Expanding Editor) ```xml ``` ## Building and Running ```bash # From the maui-linux-push directory cd samples/TodoApp dotnet publish -c Release -r linux-arm64 # Run on Linux ./bin/Release/net9.0/linux-arm64/publish/TodoApp ``` ## Controls Demonstrated | Control | Usage | |---------|-------| | NavigationPage | App navigation container | | ContentPage | Individual screens | | CollectionView | Task list with selection | | Grid | Page layouts | | VerticalStackLayout | Vertical grouping | | HorizontalStackLayout | Horizontal grouping | | Label | Text display | | Entry | Single-line input | | Editor | Multi-line input | | Button | Toolbar actions | | Border | Card styling with rounded corners | | CheckBox | Completion toggle | | BoxView | Visual separators | ## License MIT License - See repository root for details.