init
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.CommonCore/Interface/SystemSettings/ISystemSettingsView.cs
|
||||
- Common/DTS.CommonCore/Interface/SystemSettings/ISystemSettingsViewModel.cs
|
||||
generated_at: "2026-04-16T12:13:27.974060+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "409fbccc02533644"
|
||||
---
|
||||
|
||||
# Documentation: System Settings View Interfaces
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This module defines the contract for the System Settings feature within an MVVM (Model-View-ViewModel) architecture. It provides two interfaces—`ISystemSettingsView` and `ISystemSettingsViewModel`—that establish the separation between the view layer and its corresponding view model. The `ISystemSettingsViewModel` interface defines region management capabilities for context menus, main content, and navigation areas, suggesting this module supports a modular, region-based UI composition system for system configuration screens.
|
||||
|
||||
---
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### `ISystemSettingsView`
|
||||
**Namespace:** `DTS.Common.Interface`
|
||||
**Inherits from:** `IBaseView`
|
||||
|
||||
A marker interface with no additional members. It serves as a typed contract for System Settings views, enabling type-safe association between views and view models.
|
||||
|
||||
---
|
||||
|
||||
### `ISystemSettingsViewModel`
|
||||
**Namespace:** `DTS.Common.Interface`
|
||||
**Inherits from:** `IBaseViewModel`
|
||||
|
||||
| Member | Signature | Description |
|
||||
|--------|-----------|-------------|
|
||||
| `View` | `ISystemSettingsView View { get; }` | Read-only property that provides access to the associated Shell View. |
|
||||
| `GetRegions()` | `List<FrameworkElement> GetRegions()` | Method that returns a collection of `FrameworkElement` objects representing UI regions. |
|
||||
| `ContextMenuRegion` | `Object ContextMenuRegion { get; set; }` | Read-write property for the context menu region context. |
|
||||
| `ContextMainRegion` | `Object ContextMainRegion { get; set; }` | Read-write property for the main content region context. |
|
||||
| `ContextNavigationRegion` | `Object ContextNavigationRegion { get; set; }` | Read-write property for the navigation region context. |
|
||||
|
||||
---
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- `ISystemSettingsView` must always be assignable to `IBaseView` (inheritance constraint).
|
||||
- `ISystemSettingsViewModel` must always be assignable to `IBaseViewModel` (inheritance constraint).
|
||||
- The `View` property on `ISystemSettingsViewModel` must return an instance that implements `ISystemSettingsView`.
|
||||
- `GetRegions()` must return a `List<FrameworkElement>` (the list may be empty, but the return type is non-nullable in the signature).
|
||||
- The three region context properties (`ContextMenuRegion`, `ContextMainRegion`, `ContextNavigationRegion`) are typed as `Object`, implying they can accept any reference type; no compile-time type constraints are enforced.
|
||||
|
||||
---
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
### This module depends on:
|
||||
- **`DTS.Common.Base`** — Provides `IBaseView` and `IBaseViewModel` base interfaces.
|
||||
- **`System`** — Core .NET types (`Object`).
|
||||
- **`System.Collections.Generic`** — Provides `List<T>` used by `GetRegions()`.
|
||||
- **`System.Windows`** — WPF framework providing `FrameworkElement` for region elements.
|
||||
|
||||
### What depends on this module:
|
||||
- **Cannot be determined from source alone.** Concrete implementations of `ISystemSettingsView` and `ISystemSettingsViewModel` exist elsewhere in the codebase, but their locations are not visible in the provided files.
|
||||
|
||||
---
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
- **Region properties are untyped:** `ContextMenuRegion`, `ContextMainRegion`, and `ContextNavigationRegion` are all declared as `Object`. The actual expected types and their usage patterns are unclear from the interface alone—consumers must refer to implementations or documentation to understand what types should be assigned.
|
||||
- **No nullability annotations:** The signatures lack nullability annotations (e.g., nullable reference types). Whether `GetRegions()` can return `null` or if region properties accept/return `null` is unspecified.
|
||||
- **`ISystemSettingsView` is empty:** This interface adds no members beyond `IBaseView`. Its purpose appears to be purely for type discrimination, but the architectural rationale is not evident from the source.
|
||||
- **WPF coupling:** The use of `FrameworkElement` in `GetRegions()` ties this interface to WPF, limiting portability to other UI frameworks.
|
||||
Reference in New Issue
Block a user