Nello script #96 (https://www.silverlightitalia.com/script/96/Paginazione-Reale-Dati-Controllo-DomainDataSource-Silverlight-4.0.aspx) abbiamo visto come il controllo DomainDataSource possa essere utilizzato come elemento di raccordo tra i servizi esposti con Wcf Ria Services e un client Silverlight, per interrogare i dati, eseguirne paginazione e altro.
Nel contesto di inserimento o modifica di dati, come di consueto, per concretizzare le operazioni dobbiamo eseguire il "commit" sul DomainContext, affinchè questo possa inizializzare le operazioni sul servizio e di conseguenza sul database.
Anche in questo caso il controllo DomainDataSource ci può semplificare il codice poichè espone una proprietà SubmitChangesCommand, di tipo ICommand, che può essere messa in binding con una proprietà Command di un pulsante, o altro.
<Button Command="{Binding ElementName=AdventureWorksDomainDataSource, Path=SubmitChangesCommand}" Content="Submit" /> <riacontrols:DomainDataSource x:Name="AdventureWorksDomainDataSource" QueryName="GetCustomers" PageSize="10" LoadSize="20"> <riacontrols:DomainDataSource.DomainContext> <web:AdventureWorksDomainContext /> </riacontrols:DomainDataSource.DomainContext> </riacontrols:DomainDataSource>
In questo modo, grazie alla sintassi di binding "element to element" il codice è molto conciso e funzionale: infatti l'implementazione di SubmitChangesCommand prescrive l'esecuzione del commit, con il CanExecute, alla presenza di modifiche dei dati collegati al DomainContext oltre chè ad una richiesta di commit "in corso".
Questo significa che il pulsante non sarà attivo fino alla modifica di qualche valore e diventerà inattivo a seguito della pressione, evitando automaticamente inutili richieste.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Controllare la telemetria con .NET Aspire
Introduzione alle Container Queries
Utilizzare una qualunque lista per i parametri di tipo params in C#
Anonimizzare i dati sensibili nei log di Azure Front Door
Utilizzare Azure Cosmos DB con i vettori
Gestione dell'annidamento delle regole dei layer in CSS
Supportare la sessione affinity di Azure App Service con Application Gateway
Gestire gli accessi con Token su Azure Container Registry
Scrivere selettori CSS più semplici ed efficienti con :is()
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Triggerare una pipeline su un altro repository di Azure DevOps
Integrare un servizio esterno con .NET Aspire
I più letti di oggi
- Nuovi corsi ASP e ASP.NET dal 22 novembre a Lugo (RA)
- Microsoft Security Bulletin MS05-029
- Longhorn si chiamerà Windows Vista?
- Semplificare la gestione degli array in querystring in ASP.NET Core
- .NET Aspire per applicazioni distribuite
- Aggiungere un valore neutro ad una DropDownList con il DataSet
- Paginazione e chiavi multiple con il controllo GridView
- Utilizzare CORS con Azure Cosmos DB
- Scoprire le applicazioni senza la pagina di errore personalizzata con LINQ e Microsoft.Web.Administration
- Utilizzare App Streaming Install nella Universal Windows Platform