public class ExampleView : ViewBase { }
Ui.Open<ExampleView>();
Ui.Close<ExampleView>();
public class PlayerViewModel : ViewModelBase { public string Name { get; set; } public int Health { get; set; } // we will add constructor for ease of use public PlayerViewModel( string name, int health ) { Name = name; Health = health; } }
public class PlayerInfoView : ViewBase { [Property] public PlayerHUD PlayerHUD { get; set; } public override void OnViewModelUpdate( ViewModelBase model ) { base.OnViewModelUpdate( model ); if ( model is PlayerViewModel playerViewModel ) { PlayerHUD.SetPlayerViewModel( playerViewModel ); } } }
Ui.Open<PlayerInfoView>( new PlayerViewModel( "k0fe", 100 ) );
Be aware, that OnViewModelUpdate is better to be avoid when we want to update UI often. Instead we should use BuildHash in Blazor or anything else. OnViewModelUpdate is better used when we want to inject specific classes in our ViewBase classes.