es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para solucionar el problema, puedes definir la clase Project fuera del directorio Pages. 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:

    1. Crea un nuevo proyecto de biblioteca de clases en tu solución, llamémoslo MyProject.Core.
    2. Agrega una clase al proyecto, llamémosla 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; }
      }

    3. Agrega una referencia al proyecto MyProject.Core en tu proyecto de aplicación Blazor.

    4. Actualiza el código de tu aplicación Blazor para usar la clase Project del proyecto MyProject.Core. Por ejemplo:

      <muditem xs="12" sm="6" md="4">
          <mudnumericfield @bind-value="@MyProject.NumDays" label="Número de días" variant="Variant.Text" min="0" max="10000"></mudnumericfield>
      </muditem>
      
      @code {
          private Project MyProject { get; set; } = new Project();
      }
      

      Ten en cuenta que estamos creando una nueva instancia de la clase Project y la estamos almacenando en un campo privado llamado MyProject. Luego, estamos usando la directiva @bind-Value para enlazar la propiedad NumDays del objeto MyProject 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 objeto MyProject en tu código.

Comments are closed.