Interface IViewModelRegistry
Registry for associating ViewModel types with their corresponding View types.
public interface IViewModelRegistry
Examples
ViewModels:
class MySpecificViewModel1 : MyAbstractViewModel { }
class MySpecificViewModel2 : MyAbstractViewModel { }
Views:
@inherits MvvmComponentBase<MySpecificViewModel1>
<h3>View for MySpecificViewModel1</h3>
DI Setup:
services.AddSingleton(ViewModelRegistration.Create<MySpecificViewModel1, MyComponent1>());
services.AddSingleton(ViewModelRegistration.Create<MySpecificViewModel2, MyComponent2>());
services.AddSingleton<IViewModelRegistry, ViewModelRegistry>();
In Component:
@inject IEnumerable<MyAbstractViewModel> ViewModels
@foreach (var vm in ViewModels)
{
<RegisteredViewFor Vm="vm"/>
}
Methods
GetViewForViewModelDynamic(Type)
Like GetViewForViewModel<TViewModel>(TViewModel), but accepts a Type parameter instead of an instance.
Type? GetViewForViewModelDynamic(Type viewModelType)
Parameters
viewModelTypeType
Returns
GetViewForViewModel<TViewModel>(TViewModel)
Retrieves the registered View type for a given ViewModel type, or null if no registration exists.
Type? GetViewForViewModel<TViewModel>(TViewModel viewModel) where TViewModel : INotifyPropertyChanged
Parameters
viewModelTViewModel
Returns
Type Parameters
TViewModel