@page "/"
@if(dialogClosed){
<p>You closed the dialog!</p>
}
<ol>
<li>
<MatTextField Label="What's your name?" @bind-Value="@name"></MatTextField>
</li>
<li>
<MatButton OnClick="@OpenDialog" Raised="true">Pick one</MatButton>
</li>
@if (animal != null)
{
<li>You chose: @animal</li>
}
</ol>
<MatDialog @bind-IsOpen="@dialogIsOpen">
<MatDialogTitle>Hi @name</MatDialogTitle>
<MatDialogContent>
<p>What's your favorite animal?</p>
<MatSelect TValue="string" Label="Title">
<MatOptionString ></MatOptionString>
<MatOptionString Value="dr">Dr.</MatOptionString>
<MatOptionString Value="prof">Prof.</MatOptionString>
</MatSelect>
<MatTextField @bind-Value="@dialogAnimal"></MatTextField>
</MatDialogContent>
<MatDialogActions>
<MatButton OnClick="@(e => { dialogIsOpen = false; })">No Thanks</MatButton>
<MatButton OnClick="@OkClick">OK</MatButton>
</MatDialogActions>
</MatDialog>
@code
{
bool _dialogIsOpen = false;
bool dialogIsOpen
{
get => _dialogIsOpen;
set
{
_dialogIsOpen = value;
if(value is false)
{
runYourCodeNow();
}
}
}
bool dialogClosed = false;
private void runYourCodeNow()
{
dialogClosed = true;
//this.InvokeAsync(this.StateHasChanged);
}
string name = null;
string animal = null;
string dialogAnimal = null;
void OpenDialog()
{
dialogAnimal = null;
dialogIsOpen = true;
}
void OkClick()
{
animal = dialogAnimal;
dialogIsOpen = false;
}
}