Files
DP44/enriched-partialglm/Common/DTS.CommonCore/Interface/DTS.Viewer/Navigation.md
2026-04-17 14:55:32 -04:00

2.8 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.CommonCore/Interface/DTS.Viewer/Navigation/INavigationView.cs
Common/DTS.CommonCore/Interface/DTS.Viewer/Navigation/INavigationViewModel.cs
2026-04-16T12:23:10.877701+00:00 zai-org/GLM-5-FP8 1 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.