{"id":17621459,"url":"https://github.com/sql-mistermagoo/blazorbinding","last_synced_at":"2025-04-23T16:25:09.710Z","repository":{"id":91797687,"uuid":"159259659","full_name":"SQL-MisterMagoo/BlazorBinding","owner":"SQL-MisterMagoo","description":"Sample Blazor App demonstrating various data binding scenarios","archived":false,"fork":false,"pushed_at":"2020-06-15T16:16:33.000Z","size":563,"stargazers_count":26,"open_issues_count":4,"forks_count":5,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-23T16:25:08.295Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SQL-MisterMagoo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-11-27T01:51:59.000Z","updated_at":"2022-04-04T19:28:08.000Z","dependencies_parsed_at":"2024-01-15T16:52:42.893Z","dependency_job_id":null,"html_url":"https://github.com/SQL-MisterMagoo/BlazorBinding","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SQL-MisterMagoo%2FBlazorBinding","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SQL-MisterMagoo%2FBlazorBinding/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SQL-MisterMagoo%2FBlazorBinding/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SQL-MisterMagoo%2FBlazorBinding/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SQL-MisterMagoo","download_url":"https://codeload.github.com/SQL-MisterMagoo/BlazorBinding/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250468923,"owners_count":21435562,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-22T20:43:32.245Z","updated_at":"2025-04-23T16:25:09.693Z","avatar_url":"https://github.com/SQL-MisterMagoo.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BlazorBinding\nSample Blazor App demonstrating various data binding scenarios\n\n## Simple Cascade\nDemonstrates how CascadingValue is a one-way data transfer, which updates the subscriber but not the publisher.\n\n## Cascade With Callback\nDemonstrates how you can add a Callback Action to update the CascadingValue from subscriber to publisher.\n\n## Simple Binding\nDemonstrates the use of parameter binding, which is a one-way binding like the CascadingValue, but specific to the bound Component.\n\n## Simple Binding With Callback\nDemonstrates how you can add a Callback Action to update the parent values from the child.\n\n## Value Binding\nDemonstrates how the @bind-Value syntax works in a one-way mode, like simple binding.\n*This is considered to be a bug by many*\n\n## Value Binding With Callback\nDemonstrates how you can update the parent from a child component by invoking the _required_ ValueChanged Action.\n\n## Value Binding With Callback + Refresh\nDemonstrates how you can ensure the parent knows a child component has updated data, and trigger a refresh.\n\n## Value Binding Class Object\nDemonstrates how to two-way bind a list of objects with multiple properties.\n\n## The Problem With Clicks - \"Propagation\"\nDemonstrates how events on standard html elements propagate in Blazor. This is very bad.\n\n## Using CascadingValue To Share A Global Component - Dialog\nDemonstrates how to use CascadingValue to share a component from MainLayout so that it is globally accessible.\n\n## Autocomplete text input\nDemonstrates how to perform autocomplete on a text input.\n\n## ViewModel Binding\nDemonstrates a simple method to enable a page to bind a ViewModel that automatically hooks into StateHasChanged.\n\n### Summary\n\nIn all cases, some kind of callback action is required to notify the parent component of a change in the data.\nThis is, in my opinion OK - as it gives me control of the data and UI - however, some people consider the manual intervention required to be a bug.\n\nI have not included any examples of using \"State\" to achieve two way binding, although that is also possible, it would also require some kind of callback notification.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsql-mistermagoo%2Fblazorbinding","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsql-mistermagoo%2Fblazorbinding","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsql-mistermagoo%2Fblazorbinding/lists"}