BindingSource.ResetBindings(Boolean) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Hace que un control enlazado a BindingSource vuelva a leer todos los elementos de la lista y actualice los valores mostrados.
public:
void ResetBindings(bool metadataChanged);
public void ResetBindings (bool metadataChanged);
member this.ResetBindings : bool -> unit
Public Sub ResetBindings (metadataChanged As Boolean)
Parámetros
- metadataChanged
- Boolean
Es true
si ha cambiado el esquema de datos; es false
si sólo han cambiado los valores.
Ejemplos
En el ejemplo de código siguiente se usa un BindingSource componente para enlazar una lista de matrices, que no proporciona notificación de cambios. Se quita un elemento de la lista y se notifica el cambio a los controles enlazados mediante una llamada al ResetBindings método . Este ejemplo de código forma parte de un ejemplo más grande proporcionado en How to: Reflect Data Source Novedades in a Windows Forms Control with the BindingSource.
private:
void button1_Click( Object^ /*sender*/, EventArgs^ /*e*/ )
{
String^ xml = "<US><states>"
+ "<state><name>Washington</name><capital>Olympia</capital> "
+ "<flower>Coast Rhododendron</flower></state>"
+ "<state><name>Oregon</name><capital>Salem</capital>"
+ "<flower>Oregon Grape</flower></state>"
+ "<state><name>California</name><capital>Sacramento</capital>"
+ "<flower>California Poppy</flower></state>"
+ "<state><name>Nevada</name><capital>Carson City</capital>"
+ "<flower>Sagebrush</flower></state>"
+ "</states></US>";
// Convert the xml string to bytes and load into a memory stream.
array<Byte>^ xmlBytes = Encoding::UTF8->GetBytes( xml );
MemoryStream^ stream = gcnew MemoryStream( xmlBytes,false );
// Create a DataSet and load the xml into it.
dataSet2->ReadXml( stream );
// Set the data source.
bindingSource1->DataSource = dataSet2;
bindingSource1->ResetBindings( true );
}
private void button1_Click(object sender, EventArgs e)
{
// If items remain in the list, remove the first item.
if (states.Count > 0)
{
states.RemoveAt(0);
// Call ResetBindings to update the textboxes.
bindingSource1.ResetBindings(false);
}
}
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles button1.Click
' If items remain in the list, remove the first item.
If states.Count > 0 Then
states.RemoveAt(0)
' Call ResetBindings to update the textboxes.
bindingSource1.ResetBindings(False)
End If
End Sub
Comentarios
El ResetBindings método informa a todos los controles enlazados a para BindingSource actualizar sus valores. El método lo hace generando el ListChanged evento al menos una vez; el metaDataChanged
parámetro indica la naturaleza del cambio subyacente.
Un
metaDataChanged
valor detrue
indica que el esquema de datos de BindingSource ha cambiado. Se genera un ListChanged evento con ListChangedEventArgs.ListChangedType establecido en ListChangedType.PropertyDescriptorChanged.Un
metaDataChanged
valor defalse
indica que solo han cambiado los valores de uno o varios elementos.
Independientemente del valor de metaDataChanged
, se genera un ListChanged evento con ListChangedEventArgs.ListChangedType establecido en ListChangedType.Reset. Como consecuencia, llamar a ResetBindings con un parámetro de true
provocará dos ListChanged eventos.
ResetBindings Se llama automáticamente cada vez que otro miembro realiza cambios importantes en el enlace de datos, como establecer las DataSource propiedades o DataMember . Sin embargo, el programador también puede llamar explícitamente a este método.