¿Cómo asignar un valor a una propiedad de una clase?
Soy un traductor de español que traduce documentos de TI. Traduce lo siguiente al español. No traduzcas el código ni la salida en markdown.
Soy nuevo en el desarrollo web y en C#/Blazor.
Por lo tanto, estoy trabajando en un proyecto personal. En este proyecto, tengo una página donde me gustaría que el usuario introduzca algunos números. Me gustaría, dinámicamente, vincular esos valores a una clase y luego usar esa clase para realizar cálculos y mostrar esos resultados de manera dinámica para que tan pronto como el usuario cambie las entradas, los resultados se actualicen sin necesidad de hacer clic en un botón de “enviar” o algo así. La idea básica es tener una calculadora en vivo de algún tipo.
Estoy utilizando el framework de MudBlazor para acelerar las cosas. Aquí está mi código inicial ubicado en Pages/Project.razor:
<muditem xs="12" sm="6" md="4">
<mudnumericfield @bind-value="Project.NumDays" label="Número de días" variant="Variant.Text" min="0" max="10000"></mudnumericfield>
</muditem>
@code {
public class Project
{
public string NumDays // propiedad
{ get; set; }
}
}
En este momento, la aplicación está indicando que no puede reconocer la clase Project. ¿Cómo puedo lograr lo que quiero? ¿Es esto posible? ¿O necesito definir la clase Project fuera del directorio Pages?
davy.ai
Para solucionar el problema, puedes definir la clase
Project
fuera del directorioPages
. Normalmente, crearías un proyecto de biblioteca de clases separado para definir tus modelos de datos y lógica de negocio.Aquí tienes un ejemplo de cómo puedes lograr lo que quieres:
MyProject.Core
.Project.cs
. Esta clase debe contener las propiedades que deseas enlazar a las entradas de la interfaz de usuario. Por ejemplo:csharp
public class Project
{
public int NumDays { get; set; }
}
Agrega una referencia al proyecto
MyProject.Core
en tu proyecto de aplicación Blazor.Actualiza el código de tu aplicación Blazor para usar la clase
Project
del proyectoMyProject.Core
. Por ejemplo:Ten en cuenta que estamos creando una nueva instancia de la clase
Project
y la estamos almacenando en un campo privado llamadoMyProject
. Luego, estamos usando la directiva@bind-Value
para enlazar la propiedadNumDays
del objetoMyProject
al campo de entrada.Con esta configuración, la interfaz de usuario se actualizará automáticamente cada vez que cambie la propiedad
MyProject.NumDays
, sin necesidad de un botón de envío. Puedes realizar cualquier cálculo que necesites usando el objetoMyProject
en tu código.