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 i valori proposti 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
La proprietà di cui si deve ottenere il valore proposto.
- value
- Object
Al termine dell’esecuzione, questo metodo contiene un oggetto che rappresenta il valore proposto della proprietà. Questo parametro viene passato non inizializzato.
Restituisce
true
se il valore corrisponde al valore proposto per la proprietà specificata; altrimenti, false
.
Esempio
Nell'esempio seguente viene creato un oggetto personalizzato ValidationRule denominato ValidateDateAndPrice
.
Validate Nel metodo, nell'esempio viene usato il TryGetValue metodo e la Items proprietà per ottenere i valori immessi dall'utente nel modulo. L'esempio verifica quindi che se un elemento è superiore a 100 dollari, sarà disponibile per almeno sette giorni. Questo esempio fa parte di un esempio più grande nella 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é non è riuscita una regola di convalida precedente.
Usare questo metodo nel ValidationRule.Validate metodo per ottenere il commit del valore all'origine. Il tipo value
dipende dalla fase in cui si verifica.ValidationRule Ad esempio, se un TextBox oggetto è associato a una proprietà di tipo integer, value
è una stringa se la ValidationRule chiamata TryGetValue ha il relativo ValidationStep set su RawProposedValue. Se l'oggetto ValidationRule è impostato su ConvertedProposedValue, il tipo di value
è qualsiasi tipo restituito dal convertitore ValidationStep dell'associazione. In questo esempio, value
in genere è un intero.