BindingGroup.TryGetValue(Object, String, Object) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Tenta di ottenere il valore proposto per la proprietà e l'elemento specificati.
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
Parametri
- item
- Object
Oggetto contenente la proprietà specificata.
- propertyName
- String
Proprietà di cui ottenere il valore proposto.
- value
- Object
Quando termina, questo metodo contiene un oggetto che rappresenta il valore della proprietà proposto. Questo parametro viene passato non inizializzato.
Restituisce
true se value è il valore proposto per la proprietà specificata; in caso contrario, false.
Esempio
Nell'esempio seguente viene creato un oggetto personalizzato ValidationRule denominato ValidateDateAndPrice.
Validate Nel metodo , nell'esempio viene utilizzato il TryGetValue metodo e la Items proprietà per ottenere i valori immessi dall'utente nel modulo. L'esempio verifica quindi che se un articolo è superiore a 100 dollari, sarà disponibile per almeno sette giorni. Questo esempio fa parte di un esempio più ampio sulla BindingGroup classe
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
Commenti
TryGetValue restituisce false se non è presente un'associazione per l'elemento e la proprietà specificati o se il valore della proprietà specificata non è disponibile, a causa di un errore di conversione o perché una regola di convalida precedente non è riuscita.
Utilizzare questo metodo nel ValidationRule.Validate metodo per ottenere il commit del valore nell'origine. Il tipo value dipende dalla fase in cui si verifica l'oggetto ValidationRule . Ad esempio, se un TextBox oggetto è associato a una proprietà di tipo integer, value è una stringa se l'oggetto ValidationRule che chiama TryGetValue è ValidationStep impostato su RawProposedValue. Se è ValidationRuleValidationStep impostato su ConvertedProposedValue, il tipo di value è qualsiasi tipo restituito dal convertitore dell'associazione. In questo esempio, value è in genere un numero intero.