Mam poniższy moduł zamówienia w którym po kinięciu plusika można dynamicznie dodać kontrahenta.
I tutaj wszystko działa, ponieważ po dodaniu kontrahenta pojawia się on na liście kontrahentów:
Natomiast teraz klient zażyczył sobie aby po dodaniu dynamicznie kontrahenta został on automatycznie umieszczony jako wybrana opcja w liście wyboru (komponent MudAutocomplete)
Czyli coś takiego:
użyłem sobie wcześniej referencji dla komponentu MudAutocomplete (MudBlazor) czyli:
async Task SzybkieDodawaniaKontrahenta()
{
Kontrahent model_Kontrahent = new Kontrahent();
var parameters = new DialogParameters<ModulKontrahent_add>();
parameters.Add(x => x.TrybSzybkieDodawanieKontrahent, true);
var dialog = await DialogService.ShowAsync<ModulKontrahent_add>("SZYBKIE DODAWANIE KONTRAHENTA:", parameters);
var wynik = await dialog.Result;
if (!wynik.Canceled)
{
await c();
var GetData = await dialog.GetReturnValueAsync<Kontrahent>();
model_Kontrahent = GetData;
_mudautocomplete.Text = model_Kontrahent.Imie + " " + model_Kontrahent.Nazwisko + " - tel: " + model_Kontrahent.Telefon;
}
}
ale powstał problem polegający na tym że pomimo że tekst pojawił się w MudAutocomplete to nie pobrał id nowo dodanego kontrahenta. A nie pobrał dlatego bo nie odświeżył mi listy kontrahentów w komponencie MudAutocomplete
Poniżej zamieszczam zawatość AktualizacjaListyKontrahentow:
public async Task AktualizacjaListyKontrahentow()
{
await Task.Run(async () =>
{
Items = await baza.GetOfCustomers();
});
StateHasChanged();
}
oraz MudAutocomplete:
<MudAutocomplete @ref="_mudautocomplete" T="Kontrahent" ShowProgressIndicator="true" ValueChanged="OnValueChanged" Clearable="true" Label="Kontrahent:" SearchFunc="@SearchItem" ToStringFunc="@(e=> e==null?null : $"{e.Imie} {e.Nazwisko} - tel: {e.Telefon}")" Strict="false" Required="true" />
Jak mogę rozwiązać ten problem?
Pozdrawiam,
Łukasz