using ReactiveUI;
namespace AuroraDesk.ViewModels.Base;
///
/// 可路由的 ViewModel 基类,实现 IRoutableViewModel 接口
///
public abstract class RoutableViewModel : ReactiveObject, IRoutableViewModel
{
///
/// 路由 URL 路径
///
public string? UrlPathSegment { get; protected set; } = "未知路由";
///
/// 宿主 Screen (IScreen 实例)
///
public IScreen HostScreen { get; protected set; } = null!;
///
/// 构造函数
///
/// 宿主 Screen
/// 路由 URL 路径
protected RoutableViewModel(IScreen hostScreen, string? urlPathSegment = null)
{
HostScreen = hostScreen;
UrlPathSegment = urlPathSegment ?? GetType().Name.Replace("ViewModel", string.Empty);
}
}