Compartir vía


ConvertEventArgs.Value Propiedad

Definición

Obtiene o establece el valor de ConvertEventArgs.

public:
 property System::Object ^ Value { System::Object ^ get(); void set(System::Object ^ value); };
public object Value { get; set; }
public object? Value { get; set; }
member this.Value : obj with get, set
Public Property Value As Object

Valor de propiedad

Valor del objeto ConvertEventArgs.

Ejemplos

En el ejemplo de código siguiente se crea un Bindingobjeto , se agrega un ConvertEventHandler delegado a los Parse eventos y Format , y se usa la DataBindings propiedad para agregar al BindingBindingsCollection objeto de un TextBox control . El DecimalToCurrencyString delegado de eventos, que se agrega al Format evento, usa el ToString método para dar formato al valor enlazado (un Decimal tipo) como moneda. El CurrencyStringToDecimal delegado de eventos, que se agrega al Parse evento, convierte el valor mostrado por el control de nuevo al Decimal tipo.

private:
   void DecimalToCurrencyString( Object^ /*sender*/, ConvertEventArgs^ cevent )
   {
      // The method converts only to string type. Test this using the DesiredType.
      if ( cevent->DesiredType != String::typeid )
      {
         return;
      }
      
      // Use the ToString method to format the value as currency ("c").
      cevent->Value = ( (Decimal^)(cevent->Value) )->ToString( "c" );
   }

   void CurrencyStringToDecimal( Object^ /*sender*/, ConvertEventArgs^ cevent )
   {
      // The method converts back to decimal type only. 
      if ( cevent->DesiredType != Decimal::typeid )
      {
         return;
      }
      
      // Converts the string back to decimal using the static Parse method.
      cevent->Value = Decimal::Parse( cevent->Value->ToString(),
         NumberStyles::Currency, nullptr );
   }

   void BindControl()
   {
      // Creates the binding first. The OrderAmount is typed as Decimal.
      Binding^ b = gcnew Binding(
         "Text",ds,"customers.custToOrders.OrderAmount" );
      
      // Adds the delegates to the events.
      b->Format += gcnew ConvertEventHandler(
         this, &Form1::DecimalToCurrencyString );
      b->Parse += gcnew ConvertEventHandler(
         this, &Form1::CurrencyStringToDecimal );
      text1->DataBindings->Add( b );
   }
private void DecimalToCurrencyString(object sender, ConvertEventArgs cevent)
{
   // The method converts only to string type. Test this using the DesiredType.
   if(cevent.DesiredType != typeof(string)) return;

   // Use the ToString method to format the value as currency ("c").
   cevent.Value = ((decimal) cevent.Value).ToString("c");
}

private void CurrencyStringToDecimal(object sender, ConvertEventArgs cevent)
{
   // The method converts back to decimal type only. 
   if(cevent.DesiredType != typeof(decimal)) return;

   // Converts the string back to decimal using the static Parse method.
   cevent.Value = Decimal.Parse(cevent.Value.ToString(),
   NumberStyles.Currency, null);
}

private void BindControl()
{
   // Creates the binding first. The OrderAmount is typed as Decimal.
   Binding b = new Binding
   ("Text", ds, "customers.custToOrders.OrderAmount");
   // Adds the delegates to the events.
   b.Format += new ConvertEventHandler(DecimalToCurrencyString);
   b.Parse += new ConvertEventHandler(CurrencyStringToDecimal);
   text1.DataBindings.Add(b);
}
Private Sub DecimalToCurrencyString(sender As Object, cevent As ConvertEventArgs)
   ' The method converts only to string type. Test this using the DesiredType.
   If Not cevent.DesiredType Is GetType(String) Then
      Return
   End If 
   ' Use the ToString method to format the value as currency ("c").
   cevent.Value = CDec(cevent.Value).ToString("c")
End Sub
 
 
Private Sub CurrencyStringToDecimal(sender As Object, cevent As ConvertEventArgs)
   ' The method converts back to decimal type only. 
   If Not cevent.DesiredType Is GetType(Decimal) Then
      Return
   End If 
   ' Converts the string back to decimal using the shared Parse method.
   cevent.Value = Decimal.Parse(cevent.Value.ToString, _
   NumberStyles.Currency, nothing)

End Sub
 
 
Private Sub BindControl()
   ' Creates the binding first. The OrderAmount is typed as Decimal.
   Dim b As New Binding("Text", ds, "customers.custToOrders.OrderAmount")
   ' Adds the delegates to the events.
   AddHandler b.Format, AddressOf DecimalToCurrencyString
   AddHandler b.Parse, AddressOf CurrencyStringToDecimal
   text1.DataBindings.Add(b)
End Sub

Comentarios

El valor contenido por la Value propiedad depende del evento en el que se devuelve .ConvertEventArgs ConvertEventArgs Se puede devolver en el Format evento o en el Parse evento .

Cuando se devuelve en ConvertEventArgs el Format evento , la Value propiedad contiene el valor de propiedad sin formato del origen de datos. Dentro del Format evento, puede leer el valor de propiedad, dar formato al valor y restablecer la Value propiedad al nuevo valor (con formato), estableciendo así el valor mostrado en el control enlazado a datos.

ConvertEventArgs Cuando se devuelve en el Parse evento , la propiedad contiene el valor con formato personalizado del control enlazado a datos. Dentro del Parse evento, debe leer el valor con formato, analizarlo y convertirlo de nuevo al mismo tipo de datos que el origen de datos. A continuación, puede restablecer la Value propiedad al valor sin formato y, por tanto, establecer el valor del origen de datos. Para determinar el tipo del origen de datos, examine el valor de la DesiredType propiedad.

Se aplica a

Consulte también