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
Arricchire l'interfaccia di .NET Aspire
Blue/Green Release in locale con .NET Aspire
Validare form con pseudo-classi CSS user-valid e user-invalid
Estrarre solo alcuni file da uno zip tramite le classi del namespace System.IO.Compression
Configurare OpenTelemetry per Application Insights su ASP.NET Core
Utilizzare zizmor per rendere più sicuri i workflow di GitHub
Evitare la compressione degli artefatti in un workflow di GitHub
Realizzare un accordion con gli elementi HTML details e summary
Costruire endpoint SSE in ASP.NET Core
Utilizzare i command service nei test con .NET Aspire
Planning & Specification Driven Development + GitHub Copilot
Running workloads and operations with Azure Kubernetes Service


