BindingGroup.TryGetValue(Object, String, Object) 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í.
Intenta obtener el valor propuesto para la propiedad y elemento especificados.
public:
bool TryGetValue(System::Object ^ item, System::String ^ propertyName, [Runtime::InteropServices::Out] System::Object ^ % value);
public bool TryGetValue (object item, string propertyName, out object value);
member this.TryGetValue : obj * string * obj -> bool
Public Function TryGetValue (item As Object, propertyName As String, ByRef value As Object) As Boolean
Parámetros
- item
- Object
Objeto que contiene la propiedad especificada.
- propertyName
- String
Propiedad cuyo valor propuesto se va a obtener.
- value
- Object
El resultado que devuelva este método contendrá un objeto que representará el valor de propiedad propuesto. Este parámetro se pasa sin inicializar.
Devoluciones
Es true
si el valor es el valor propuesto para la propiedad especificada; de lo contrario, es false
.
Ejemplos
En el ejemplo siguiente se crea un personalizado ValidationRule denominado ValidateDateAndPrice
. En el método , en el Validate ejemplo se usa el TryGetValue método y la Items propiedad para obtener los valores especificados por el usuario en el formulario. A continuación, el ejemplo comprueba que si un elemento tiene más de 100 dólares, estará disponible durante al menos siete días. Este ejemplo forma parte de un ejemplo más grande en la BindingGroup clase .
public class ValidateDateAndPrice : ValidationRule
{
// Ensure that an item over $100 is available for at least 7 days.
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
BindingGroup bg = value as BindingGroup;
// Get the source object.
PurchaseItem item = bg.Items[0] as PurchaseItem;
object doubleValue;
object dateTimeValue;
// Get the proposed values for Price and OfferExpires.
bool priceResult = bg.TryGetValue(item, "Price", out doubleValue);
bool dateResult = bg.TryGetValue(item, "OfferExpires", out dateTimeValue);
if (!priceResult || !dateResult)
{
return new ValidationResult(false, "Properties not found");
}
double price = (double)doubleValue;
DateTime offerExpires = (DateTime)dateTimeValue;
// Check that an item over $100 is available for at least 7 days.
if (price > 100)
{
if (offerExpires < DateTime.Today + new TimeSpan(7, 0, 0, 0))
{
return new ValidationResult(false, "Items over $100 must be available for at least 7 days.");
}
}
return ValidationResult.ValidResult;
}
}
Public Class ValidateDateAndPrice
Inherits ValidationRule
' Ensure that an item over $100 is available for at least 7 days.
Public Overrides Function Validate(ByVal value As Object, ByVal cultureInfo As CultureInfo) As ValidationResult
Dim bg As BindingGroup = TryCast(value, BindingGroup)
' Get the source object.
Dim item As PurchaseItem = TryCast(bg.Items(0), PurchaseItem)
Dim doubleValue As Object = Nothing
Dim dateTimeValue As Object = Nothing
' Get the proposed values for Price and OfferExpires.
Dim priceResult As Boolean = bg.TryGetValue(item, "Price", doubleValue)
Dim dateResult As Boolean = bg.TryGetValue(item, "OfferExpires", dateTimeValue)
If (Not priceResult) OrElse (Not dateResult) Then
Return New ValidationResult(False, "Properties not found")
End If
Dim price As Double = CDbl(doubleValue)
Dim offerExpires As Date = CDate(dateTimeValue)
' Check that an item over $100 is available for at least 7 days.
If price > 100 Then
If offerExpires < Date.Today + New TimeSpan(7, 0, 0, 0) Then
Return New ValidationResult(False, "Items over $100 must be available for at least 7 days.")
End If
End If
Return ValidationResult.ValidResult
End Function
End Class
Comentarios
TryGetValue devuelve false
si no hay un enlace para el elemento y la propiedad especificados o si el valor de la propiedad especificada no está disponible, debido a un error de conversión o porque se produjo un error en una regla de validación anterior.
Use este método en el ValidationRule.Validate método para obtener el valor que se va a confirmar en el origen. El tipo value
depende de la fase en la que se produce .ValidationRule Por ejemplo, si un TextBox es datos enlazados a una propiedad de tipo entero, value
es una cadena si el ValidationRule objeto que llama TryGetValue tiene establecido RawProposedValueen ValidationStep . ValidationRule Si tiene establecido en ValidationStep ConvertedProposedValue, el tipo de value
es cualquier tipo devuelto por el convertidor del enlace. En este ejemplo, value
suele ser un entero.