Files

62 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
---
source_files:
- Common/DTS.CommonCore/Interface/DTS.Viewer/Navigation/INavigationView.cs
- Common/DTS.CommonCore/Interface/DTS.Viewer/Navigation/INavigationViewModel.cs
generated_at: "2026-04-16T12:23:10.877701+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "3183c8a5d454e0e2"
---
# Documentation: Navigation Interfaces
## 1. Purpose
This module defines the core navigation interfaces for the DTS viewer system, establishing a contract between navigation views and their associated view models. It follows the MVVM (Model-View-ViewModel) pattern, providing `INavigationView` as a marker interface for navigation view components and `INavigationViewModel` as the interface that exposes access to the navigation view. This abstraction layer allows for decoupled navigation components within the larger DTS.CommonCore framework.
---
## 2. Public Interface
### `INavigationView`
**Namespace:** `DTS.Common.Interface`
**Inheritance:** `IBaseView`
An empty marker interface extending `IBaseView`. It defines no members of its own; its purpose is to provide type identity for navigation view implementations within the view hierarchy.
---
### `INavigationViewModel`
**Namespace:** `DTS.Common.Interface`
**Inheritance:** `IBaseViewModel`
| Member | Type | Access | Description |
|--------|------|--------|-------------|
| `NavigationView` | `INavigationView` | `get` | Returns the associated navigation view instance. |
---
## 3. Invariants
- `INavigationView` must always inherit from `IBaseView`.
- `INavigationViewModel` must always inherit from `IBaseViewModel`.
- The `NavigationView` property on any `INavigationViewModel` implementation must return an object that implements `INavigationView`.
- The inheritance chain implies that any `INavigationView` or `INavigationViewModel` implementation must also satisfy the contracts of their respective base interfaces (`IBaseView`, `IBaseViewModel`).
---
## 4. Dependencies
### This module depends on:
- `DTS.Common.Base` — provides `IBaseView` and `IBaseViewModel` base interfaces.
### What depends on this module:
- **Cannot be determined from source alone.** No downstream consumers are visible in the provided files.
---
## 5. Gotchas
1. **Documentation mismatch:** The XML summary comment for `INavigationViewModel.NavigationView` states "Gets the Shell View," but the property is named `NavigationView`. It is unclear whether this is a copy-paste error in documentation, a historical naming remnant, or if "Shell View" and "Navigation View" are intended to be synonymous in this context.
2. **Empty interface design:** `INavigationView` defines no members and serves only as a marker interface. Developers implementing this interface must consult `IBaseView` to understand the actual required members, which are not visible in these source files.