wpfIntroduzione al binding dei dati WPF


Sintassi

  • {Binding PropertyName} è equivalente a {Binding Path = PropertyName}
  • {Binding Path = SomeProperty.SomeOtherProperty.YetAnotherProperty}
  • {Binding Path = SomeListProperty [1]}

Parametri

Parametro Dettagli
Sentiero Specifica il percorso per associare a. Se non specificato, si collega a DataContext stesso.
UpdateSourceTrigger Specifica quando l'origine dell'associazione ha il suo valore aggiornato. Il valore predefinito è LostFocus . Il valore più utilizzato è PropertyChanged .
Modalità In genere OneWay o TwoWay . Se non specificato dal TwoWay viene TwoWay su OneWay meno che la destinazione vincolante non richieda che sia TwoWay . Si verifica un errore quando TwoWay viene utilizzato per collegarsi a una proprietà readonly, ad esempio OneWay deve essere impostato in modo esplicito quando si TextBox.Text una proprietà stringa di sola lettura a TextBox.Text .
fonte Consente l'utilizzo di StaticResource come origine di binding anziché DataContext corrente.
RelativeSource Consente l'utilizzo di un altro elemento XAML come origine di associazione anziché DataContext corrente.
ElementName Consente l'utilizzo di un elemento XAML denominato come origine di associazione anziché DataContext corrente.
FallbackValue Se l'associazione fallisce, questo valore viene fornito alla destinazione vincolante.
TargetNullValue Se il valore dell'origine dell'associazione è null , questo valore viene fornito alla destinazione vincolante.
Converter Specifica il convertitore StaticResource utilizzato per convertire il valore dell'associazione, ad esempio, converte un valore booleano in un elemento enumerazione Visibility .
ConverterParameter Specifica un parametro facoltativo da fornire al convertitore. Questo valore deve essere statico e non può essere associato.
StringFormat Specifica una stringa di formato da utilizzare quando si visualizza il valore associato.
Ritardo (WPF 4.5+) Specifica un ritardo in milliseconds affinché il binding aggiorni BindingSource in ViewModel . Deve essere utilizzato con Mode=TwoWay e UpdateSourceTrigger=PropertyChanged per avere effetto.

Osservazioni

UpdateSourceTrigger

Per impostazione predefinita, WPF aggiorna l'origine dell'associazione quando il controllo perde lo stato attivo. Tuttavia, se esiste un solo controllo che può ottenere l' UpdateSourceTrigger=PropertyChanged comune negli esempi, è necessario specificare UpdateSourceTrigger=PropertyChanged perché gli aggiornamenti funzionino.

Vorrai utilizzare PropertyChanged come trigger su molti collegamenti bidirezionali, a meno che l'aggiornamento dell'origine dell'assegnazione su ogni sequenza di tasti sia costoso o la convalida dei dati in tempo reale non sia desiderabile.

L'uso di LostFocus ha uno sfortunato effetto collaterale: premendo Invio per inviare un modulo utilizzando un pulsante contrassegnato con IsDefault non si aggiorna la proprietà di backup del binding, annullando in modo efficace le modifiche. Fortunatamente, esistono alcuni soluzioni alternative .

Si noti inoltre che, a differenza di UWP, WPF (4.5+) ha anche la proprietà Delay in binding, che potrebbe essere sufficiente per alcuni binding con impostazioni di intelligenza minore solo locali o semplici, come alcune validazioni di TextBox .

Introduzione al binding dei dati WPF Esempi correlati