Прочитать на английском

Поделиться через


Binding.Format Событие

Определение

Происходит, если свойство элемента управления привязано к значению данных.

public event System.Windows.Forms.ConvertEventHandler Format;
public event System.Windows.Forms.ConvertEventHandler? Format;

Тип события

Примеры

В следующем примере кода создается Binding, добавляется ConvertEventHandler делегат как к событиям Parse и Format , так и Binding к BindingsCollection элементу TextBox управления с помощью DataBindings свойства . Делегат DecimalToCurrencyString события, добавленный к событию Format , форматирует привязанное Decimal значение (тип) как валюту ToString с помощью метода . Делегат CurrencyStringToDecimal события, добавленный к событию Parse , преобразует значение, отображаемое элементом управления, обратно в Decimal тип .

В этом примере предполагается наличие именованного DataSetdsобъекта .

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 a Decimal type.
   Binding b = new Binding
      ("Text", ds, "customers.custToOrders.OrderAmount");
   // Add the delegates to the event.
   b.Format += new ConvertEventHandler(DecimalToCurrencyString);
   b.Parse += new ConvertEventHandler(CurrencyStringToDecimal);
   text1.DataBindings.Add(b);
}

Комментарии

Событие Format возникает при отправке данных из источника данных в элемент управления . Событие можно обработать Format , чтобы преобразовать неформатированные данные из источника данных в форматированные данные для отображения. При извлечении данных из элемента управления в источник Parse данных возникает событие для отмены формата отображаемого значения, а затем Format происходит событие для переформатировки данных для отображения. Это гарантирует, что привязанный элемент управления отображает правильно отформатированные данные независимо от того, вводит ли пользователь форматированные или неформатированные данные в элементе управления.

События Format и Parse позволяют создавать настраиваемые форматы для отображения данных. Например, если данные в таблице имеют тип Decimal, можно отобразить данные в формате локальной валюты, задав Value свойству ConvertEventArgs объекта значение форматирования в событии Format . Следовательно, необходимо неформатировать отображаемое значение в событии Parse .

Событие Format возникает всякий BindingManagerBase раз, Current когда значение изменяется, в том числе:

  • При первой привязке свойства.

  • В любой момент изменения Position .

  • Каждый раз, когда привязанный к данным список отсортирован или фильтруется, что выполняется, когда предоставляет DataView список.

Событие Format также возникает после Parse события . Например, когда элемент управления теряет фокус, анализируется его содержимое. Сразу после этого, когда новые данные отправляются в элемент управления, происходит событие, Format позволяющее отформатировать новое содержимое.

Дополнительные сведения об обработке событий см. в разделе Обработка и вызов событий.

Применяется к

Продукт Версии
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

См. также раздел