Przesłanie danych z MudDialog.Close(DialogResult.Ok)

0

Dzień dobry,

mam problem z przesyłaniem danych w postaci klasy z DialogService.ShowAsync<OknoDialogowe_Zatwierdzenie_Wybor_Daty>, ponieważ otrzymuje zawsze pustą wartość i nie wiem gdzie zrobiłem błąd :(

Głowna część:

public class UserData
{
    public DateTime wybranadata { get; set; }

}
...

var dane = await DialogService.ShowAsync<OknoDialogowe_Zatwierdzenie_Wybor_Daty>("Confirm", parameters);

var wynik = await dane.Result;
if (!wynik.Cancelled)
{
    var wyswietl = wynik.Data as UserData;
    if ( wyswietl != null)
    {
        Console.WriteLine(wyswietl.wybranadata);
    }
    else
    {
        Console.WriteLine("Pusto :(");
    }
 ;

Zawartość komponentu <OknoDialogowe_Zatwierdzenie_Wybor_Daty>:

public class UserData
{
    public DateTime wybranadata { get; set; }
}
..

private void Submit() {

    var data = new UserData
        {
            wybranadata = WybranaData,
        };

    MudDialog.Close(DialogResult.Ok(data));
    //  Wykonaj?.Invoke(); 
 
}
void Cancel(){
    MudDialog.CancelAll();
    //Ukryj?.Invoke();
}
0

W jaki sposób przekazujesz do metody Submit() parametry?

0
jarzi napisał(a):

W jaki sposób przekazujesz do metody Submit() parametry?

<MudDialog IsVisible="Wyswietl" >
     <TitleContent>
        <MudText Typo="Typo.h6">
            <MudIcon Icon="@Icons.Material.Filled.Info" Class="mr-3 mb-n1"/>
            PROSZĘ WYBRAĆ DATĘ:
        </MudText>
    </TitleContent>
    <DialogContent>
        <MudSelect  Margin="Margin.Dense" T="DateTime" Label="Data:" Variant="Variant.Outlined" @bind-Value="WybranaData" @bind-SelectedValues="options">
            @foreach (var dane in ListDateOfOrders)
        {
                <MudSelectItem  T="DateTime" Value="@dane.Data_Zbioru">@dane.Data_Zbioru.ToShortDateString()</MudSelectItem>
        }
             </MudSelect>
    </DialogContent>
    <DialogActions>
        <MudButton OnClick="Cancel" Variant="Variant.Filled" Color="@Color">@ButtonText_Cancel</MudButton>
        <MudButton Color="@Color" Variant="Variant.Filled" OnClick="Submit">@ButtonText_OK</MudButton>
    </DialogActions>
</MudDialog>



@code
{
..
private DateTime WybranaData;
..
}

Dodałem jeszcze w komponencie <OknoDialogowe_Zatwierdzenie_Wybor_Daty> kontrole daty

var data = new UserData
            {
                wybranadata = WybranaData,
            };
            

            Console.WriteLine("Data:" + data.wybranadata);

i tutaj jest OK, natomiast w głównej części programu nie widzi :(

screenshot-20230908133024.png

0

Ale do Submit() musisz coś przekazać czyli:

OnClick="@((e) => Submit(item))"

1 użytkowników online, w tym zalogowanych: 0, gości: 1