Use explicit Value/ValueChanged binding since @bind doesn't work with dictionary types

This commit is contained in:
Saidamin Kattan
2026-08-09 02:58:39 +03:00
parent 2c3fda3550
commit 819e9d7230
13 changed files with 15 additions and 9 deletions
@@ -78,7 +78,7 @@
<div class="badge badge-primary badge-sm">@(_languages[_activeLang])</div>
</h4>
</div>
<MultiLangInput @bind="_names" ActiveCulture="@_activeLang" HideTabs="true"
<MultiLangInput Value="_names" ValueChanged="OnNamesChanged" ActiveCulture="@_activeLang" HideTabs="true"
Placeholder="Enter category name in the selected language..." />
<ValidationMessage For="@(() => _names)" class="text-error text-sm mt-1" />
</div>
@@ -89,7 +89,7 @@
Description
<div class="badge badge-secondary badge-sm">@(_languages[_activeLang])</div>
</h4>
<MultiLangInput @bind="_descriptions" ActiveCulture="@_activeLang"
<MultiLangInput Value="_descriptions" ValueChanged="OnDescriptionsChanged" ActiveCulture="@_activeLang"
HideTabs="true" IsTextArea="true"
Placeholder="Summarize what this category contains..." />
<ValidationMessage For="@(() => _descriptions)" class="text-error text-sm mt-1" />
@@ -254,6 +254,9 @@
_editContext = new EditContext(category);
}
private void OnNamesChanged(Dictionary<string, string> val) => _names = val;
private void OnDescriptionsChanged(Dictionary<string, string> val) => _descriptions = val;
void SyncTranslations()
{
category.Translations = _languages.Keys.Select(lang => new CategoryTranslationVM
+5 -2
View File
@@ -103,7 +103,7 @@
<div class="badge badge-primary badge-sm">@(_languages[_activeLang])</div>
</h4>
</div>
<MultiLangInput @bind="_names" ActiveCulture="@_activeLang" HideTabs="true"
<MultiLangInput Value="_names" ValueChanged="OnNamesChanged" ActiveCulture="@_activeLang" HideTabs="true"
Placeholder="Enter product name in the selected language..." />
<ValidationMessage For="@(() => _names)" class="text-error text-sm mt-1" />
</div>
@@ -114,7 +114,7 @@
Description
<div class="badge badge-secondary badge-sm">@(_languages[_activeLang])</div>
</h4>
<MultiLangInput @bind="_descriptions" ActiveCulture="@_activeLang" HideTabs="true"
<MultiLangInput Value="_descriptions" ValueChanged="OnDescriptionsChanged" ActiveCulture="@_activeLang" HideTabs="true"
IsTextArea="true" Placeholder="Write a compelling product description..." />
<ValidationMessage For="@(() => _descriptions)" class="text-error text-sm mt-1" />
</div>
@@ -422,6 +422,9 @@
_editContext = new EditContext(product);
}
private void OnNamesChanged(Dictionary<string, string> val) => _names = val;
private void OnDescriptionsChanged(Dictionary<string, string> val) => _descriptions = val;
void SyncTranslations()
{
product.Translations = _languages.Keys.Select(lang => new ProductTranslationVM
Binary file not shown.
Binary file not shown.
@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("ECommerce.Module")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+63093a31a8d8f78367943415d55cf930a1c62c0b")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2c3fda355019c874e17bcda0dd83102713be9608")]
[assembly: System.Reflection.AssemblyProductAttribute("ECommerce.Module")]
[assembly: System.Reflection.AssemblyTitleAttribute("ECommerce.Module")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
133d8945888cd0d05e3cb77f3a15f50a99afce6ebfc2d7c7aa8fb0a62c1d7eaa
2ae20479769a26d67b772ca2157ccd3d44954347ba865239aa25e2db60fef103
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
{"GlobalPropertiesHash":"LZPY+hDta90r/rORjEQTPjEtWLlGPyGxUkL/hJf0OoI=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["I/RAx2UN7tLAx1VJzlcOBsOgbCLdsI5TWO1IvnEOJfY=","MoJ1c4mYc9j3UUuRxV/A5irXoauPEQd7GQYE1ysATec=","gWb2O/z8O3fP1eW7xPwLMWyILanq/1fZDsrnFJf/ZvE=","2FzxhrndQnuhsEB\u002BmOsJQZqoLwReTU7tkb8VppZbIsM=","2WjqrqI\u002BQkYucFQdLIJMLQgqmynES6SFhIXb4Quu29g=","UCqbYjdtKt8\u002Bhlpna\u002B4SKcpzXq56ArBXO0wXS9qX9EQ=","zumhjz3XFI5MfT6/XVt\u002BxeRVpq0dIuxtjQcK26D1uq8=","jtXma1xd33T8EQ10rE2w84AmLSIid/2PCMHTIkcijyg=","VNVtrAV6DxaQmnAO6rDEyKvOe2Ii\u002BRGkyh/unMPg/uk=","GNh\u002BN9atcwTThIu6yAuRHsEK/KIDx\u002BLlp5wfeFlmVnI=","DgmYO4hauw0WxMr4x0EswFe9CTViojrKPklCofWSsH8=","j0HDEgPO9xfzqFyfYEyd3ZTFARMwMvoaaZJeEBn5mkY=","pasIyS3NsJVk2iamlHpzp7W36DtnjvkzwB4QDV\u002BRrms=","MGSvsWfqpBrmG\u002BT3/FAZlgT1\u002BsWRjL7UBfhA\u002Bma8tzQ=","UVW6CBDvhCm8ZRmbOppgqOCqFV4JLJmzTPYJ4koFSPM=","ATl/6kXsk6kUdc\u002BE0qO4uJ\u002BuOC0O9hYjmID\u002BL3RGmTo=","umfNwVrsRWN86WKEH5MGs1aih5tY85pND\u002BlPamsMUko=","5ADcJpPQSlOyU4GYZOczyeWIimW7g7Jk8PwDzi269LQ=","1yXWmyiJW67jbsMEHTsk\u002BgoVSrYgrFLwpDvAFQyAOwk=","O4N\u002BjJc/IccMk/tugCHjulN9NzoB5jyV7KWqlzrE3Eo=","NPIHVAsZrZjpyOhJ9wUq47RGxiY2x1sXdAS8KqOz3dg=","jshLg69NS5YJ/7n3s3CpxOfgsF4RlbfPrOmv8HWSjkc=","MywbajsjX9p7rGOvnFtQ0Y6riAamrzYoHBc/UaH88uw=","JlGE3THALoO5XJLMYRByqIPYVzaGwG6\u002BallXMSbj1ic=","zVo2MfIV2cqJINP7ShvSH9Ezx\u002B3oNcF3Vvq/p8FUPGI=","tSz618fGHGxVkowVr/zbNQc\u002BC7GPpX00V3VWy4QuX\u002Bo=","fXdfiDNaeaWFb8MPLi7nhV1zH61tEUzYMD0zpb79LTU=","XvhTuTUmH2r5yuUMQfp98pBdkNHnNo\u002B5LloXdXyXuyw=","9b0gTSQDkE1pLvaqF0Dv2qRbUKkL6g8RDoOYEiwYYHk=","Av63Zs8ea2qlppdGr5pqaXm3oQ5LxKBD8WU2BDKFKXA=","y547yMCEXZszuDTfelvYQqmEYybeZnzjTeSxF2Wo6So="],"CachedAssets":{},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"LZPY+hDta90r/rORjEQTPjEtWLlGPyGxUkL/hJf0OoI=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["I/RAx2UN7tLAx1VJzlcOBsOgbCLdsI5TWO1IvnEOJfY=","MoJ1c4mYc9j3UUuRxV/A5irXoauPEQd7GQYE1ysATec=","gWb2O/z8O3fP1eW7xPwLMWyILanq/1fZDsrnFJf/ZvE=","2FzxhrndQnuhsEB\u002BmOsJQZqoLwReTU7tkb8VppZbIsM=","2WjqrqI\u002BQkYucFQdLIJMLQgqmynES6SFhIXb4Quu29g=","UCqbYjdtKt8\u002Bhlpna\u002B4SKcpzXq56ArBXO0wXS9qX9EQ=","zumhjz3XFI5MfT6/XVt\u002BxeRVpq0dIuxtjQcK26D1uq8=","jtXma1xd33T8EQ10rE2w84AmLSIid/2PCMHTIkcijyg=","ut2NWmrObNtXfzjFaCwSNCGZ2pNKc5cg0fhF01MSfTM=","GNh\u002BN9atcwTThIu6yAuRHsEK/KIDx\u002BLlp5wfeFlmVnI=","DgmYO4hauw0WxMr4x0EswFe9CTViojrKPklCofWSsH8=","p1IlpwjzUN\u002BQ38Kd4EhjKNX8JUv2NjrRIq/jGg0wGng=","pasIyS3NsJVk2iamlHpzp7W36DtnjvkzwB4QDV\u002BRrms=","MGSvsWfqpBrmG\u002BT3/FAZlgT1\u002BsWRjL7UBfhA\u002Bma8tzQ=","UVW6CBDvhCm8ZRmbOppgqOCqFV4JLJmzTPYJ4koFSPM=","ATl/6kXsk6kUdc\u002BE0qO4uJ\u002BuOC0O9hYjmID\u002BL3RGmTo=","umfNwVrsRWN86WKEH5MGs1aih5tY85pND\u002BlPamsMUko=","5ADcJpPQSlOyU4GYZOczyeWIimW7g7Jk8PwDzi269LQ=","1yXWmyiJW67jbsMEHTsk\u002BgoVSrYgrFLwpDvAFQyAOwk=","O4N\u002BjJc/IccMk/tugCHjulN9NzoB5jyV7KWqlzrE3Eo=","NPIHVAsZrZjpyOhJ9wUq47RGxiY2x1sXdAS8KqOz3dg=","jshLg69NS5YJ/7n3s3CpxOfgsF4RlbfPrOmv8HWSjkc=","MywbajsjX9p7rGOvnFtQ0Y6riAamrzYoHBc/UaH88uw=","JlGE3THALoO5XJLMYRByqIPYVzaGwG6\u002BallXMSbj1ic=","zVo2MfIV2cqJINP7ShvSH9Ezx\u002B3oNcF3Vvq/p8FUPGI=","tSz618fGHGxVkowVr/zbNQc\u002BC7GPpX00V3VWy4QuX\u002Bo=","fXdfiDNaeaWFb8MPLi7nhV1zH61tEUzYMD0zpb79LTU=","XvhTuTUmH2r5yuUMQfp98pBdkNHnNo\u002B5LloXdXyXuyw=","9b0gTSQDkE1pLvaqF0Dv2qRbUKkL6g8RDoOYEiwYYHk=","Av63Zs8ea2qlppdGr5pqaXm3oQ5LxKBD8WU2BDKFKXA=","y547yMCEXZszuDTfelvYQqmEYybeZnzjTeSxF2Wo6So="],"CachedAssets":{},"CachedCopyCandidates":{}}
+1 -1
View File
@@ -1 +1 @@
{"GlobalPropertiesHash":"SHVkysnTyndQOSeC9Vylzk++miwetFHmoxYzFJ67nvo=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["I/RAx2UN7tLAx1VJzlcOBsOgbCLdsI5TWO1IvnEOJfY=","MoJ1c4mYc9j3UUuRxV/A5irXoauPEQd7GQYE1ysATec=","gWb2O/z8O3fP1eW7xPwLMWyILanq/1fZDsrnFJf/ZvE=","2FzxhrndQnuhsEB\u002BmOsJQZqoLwReTU7tkb8VppZbIsM=","2WjqrqI\u002BQkYucFQdLIJMLQgqmynES6SFhIXb4Quu29g=","UCqbYjdtKt8\u002Bhlpna\u002B4SKcpzXq56ArBXO0wXS9qX9EQ=","zumhjz3XFI5MfT6/XVt\u002BxeRVpq0dIuxtjQcK26D1uq8=","jtXma1xd33T8EQ10rE2w84AmLSIid/2PCMHTIkcijyg=","VNVtrAV6DxaQmnAO6rDEyKvOe2Ii\u002BRGkyh/unMPg/uk=","GNh\u002BN9atcwTThIu6yAuRHsEK/KIDx\u002BLlp5wfeFlmVnI=","DgmYO4hauw0WxMr4x0EswFe9CTViojrKPklCofWSsH8=","j0HDEgPO9xfzqFyfYEyd3ZTFARMwMvoaaZJeEBn5mkY=","pasIyS3NsJVk2iamlHpzp7W36DtnjvkzwB4QDV\u002BRrms=","MGSvsWfqpBrmG\u002BT3/FAZlgT1\u002BsWRjL7UBfhA\u002Bma8tzQ=","UVW6CBDvhCm8ZRmbOppgqOCqFV4JLJmzTPYJ4koFSPM=","ATl/6kXsk6kUdc\u002BE0qO4uJ\u002BuOC0O9hYjmID\u002BL3RGmTo=","umfNwVrsRWN86WKEH5MGs1aih5tY85pND\u002BlPamsMUko=","5ADcJpPQSlOyU4GYZOczyeWIimW7g7Jk8PwDzi269LQ=","1yXWmyiJW67jbsMEHTsk\u002BgoVSrYgrFLwpDvAFQyAOwk=","O4N\u002BjJc/IccMk/tugCHjulN9NzoB5jyV7KWqlzrE3Eo=","NPIHVAsZrZjpyOhJ9wUq47RGxiY2x1sXdAS8KqOz3dg=","jshLg69NS5YJ/7n3s3CpxOfgsF4RlbfPrOmv8HWSjkc=","MywbajsjX9p7rGOvnFtQ0Y6riAamrzYoHBc/UaH88uw=","JlGE3THALoO5XJLMYRByqIPYVzaGwG6\u002BallXMSbj1ic=","zVo2MfIV2cqJINP7ShvSH9Ezx\u002B3oNcF3Vvq/p8FUPGI=","tSz618fGHGxVkowVr/zbNQc\u002BC7GPpX00V3VWy4QuX\u002Bo=","fXdfiDNaeaWFb8MPLi7nhV1zH61tEUzYMD0zpb79LTU=","XvhTuTUmH2r5yuUMQfp98pBdkNHnNo\u002B5LloXdXyXuyw=","9b0gTSQDkE1pLvaqF0Dv2qRbUKkL6g8RDoOYEiwYYHk=","Av63Zs8ea2qlppdGr5pqaXm3oQ5LxKBD8WU2BDKFKXA=","y547yMCEXZszuDTfelvYQqmEYybeZnzjTeSxF2Wo6So="],"CachedAssets":{},"CachedCopyCandidates":{}}
{"GlobalPropertiesHash":"SHVkysnTyndQOSeC9Vylzk++miwetFHmoxYzFJ67nvo=","FingerprintPatternsHash":"gq3WsqcKBUGTSNle7RKKyXRIwh7M8ccEqOqYvIzoM04=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["I/RAx2UN7tLAx1VJzlcOBsOgbCLdsI5TWO1IvnEOJfY=","MoJ1c4mYc9j3UUuRxV/A5irXoauPEQd7GQYE1ysATec=","gWb2O/z8O3fP1eW7xPwLMWyILanq/1fZDsrnFJf/ZvE=","2FzxhrndQnuhsEB\u002BmOsJQZqoLwReTU7tkb8VppZbIsM=","2WjqrqI\u002BQkYucFQdLIJMLQgqmynES6SFhIXb4Quu29g=","UCqbYjdtKt8\u002Bhlpna\u002B4SKcpzXq56ArBXO0wXS9qX9EQ=","zumhjz3XFI5MfT6/XVt\u002BxeRVpq0dIuxtjQcK26D1uq8=","jtXma1xd33T8EQ10rE2w84AmLSIid/2PCMHTIkcijyg=","ut2NWmrObNtXfzjFaCwSNCGZ2pNKc5cg0fhF01MSfTM=","GNh\u002BN9atcwTThIu6yAuRHsEK/KIDx\u002BLlp5wfeFlmVnI=","DgmYO4hauw0WxMr4x0EswFe9CTViojrKPklCofWSsH8=","p1IlpwjzUN\u002BQ38Kd4EhjKNX8JUv2NjrRIq/jGg0wGng=","pasIyS3NsJVk2iamlHpzp7W36DtnjvkzwB4QDV\u002BRrms=","MGSvsWfqpBrmG\u002BT3/FAZlgT1\u002BsWRjL7UBfhA\u002Bma8tzQ=","UVW6CBDvhCm8ZRmbOppgqOCqFV4JLJmzTPYJ4koFSPM=","ATl/6kXsk6kUdc\u002BE0qO4uJ\u002BuOC0O9hYjmID\u002BL3RGmTo=","umfNwVrsRWN86WKEH5MGs1aih5tY85pND\u002BlPamsMUko=","5ADcJpPQSlOyU4GYZOczyeWIimW7g7Jk8PwDzi269LQ=","1yXWmyiJW67jbsMEHTsk\u002BgoVSrYgrFLwpDvAFQyAOwk=","O4N\u002BjJc/IccMk/tugCHjulN9NzoB5jyV7KWqlzrE3Eo=","NPIHVAsZrZjpyOhJ9wUq47RGxiY2x1sXdAS8KqOz3dg=","jshLg69NS5YJ/7n3s3CpxOfgsF4RlbfPrOmv8HWSjkc=","MywbajsjX9p7rGOvnFtQ0Y6riAamrzYoHBc/UaH88uw=","JlGE3THALoO5XJLMYRByqIPYVzaGwG6\u002BallXMSbj1ic=","zVo2MfIV2cqJINP7ShvSH9Ezx\u002B3oNcF3Vvq/p8FUPGI=","tSz618fGHGxVkowVr/zbNQc\u002BC7GPpX00V3VWy4QuX\u002Bo=","fXdfiDNaeaWFb8MPLi7nhV1zH61tEUzYMD0zpb79LTU=","XvhTuTUmH2r5yuUMQfp98pBdkNHnNo\u002B5LloXdXyXuyw=","9b0gTSQDkE1pLvaqF0Dv2qRbUKkL6g8RDoOYEiwYYHk=","Av63Zs8ea2qlppdGr5pqaXm3oQ5LxKBD8WU2BDKFKXA=","y547yMCEXZszuDTfelvYQqmEYybeZnzjTeSxF2Wo6So="],"CachedAssets":{},"CachedCopyCandidates":{}}
File diff suppressed because one or more lines are too long