W poniższym przykładzie powiązaliśmy ViewModel z widokiem z jedną właściwością o nazwie Message. Ta właściwość jest powiązana z ramką tekstową z wiązaniem dwukierunkowym. W tym teście, robimy pewną wartość przymusu w ustawiaczu i podnoszenie właściwości zmieniamy ponownie.Wartość Coerce w ustawieniu właściwości - Silverlight 5
W Silverlight 4 wszystko działało idealnie. Jeśli właściwość komunikatu zmieni się w ustawieniu właściwości, pole tekstowe zobaczy nową wartość. Na przykład. wpisanie "A" w polu tekstowym i utrata fokusa spowoduje pojawienie się Aaaaaaaa, gdy wartość zostanie zmieniona.
W Silverlight 5 jednak wydaje się, że jest uszkodzony/zmieniony. Polecenie getter nigdy nie zostanie trafione po zmianie wartości w ustawniku. Dodanie IValueConverter pomiędzy, pokazuje, że metody Convert/ConvertBack nigdy nie są trafione. Wydaje się, że zmieniło się coś fundamentalnego między wersją 4 a 5. Czy były jakieś zmiany? Czy to błąd?
public class ViewModel : INotifyPropertyChanged
{
private string _message;
public event PropertyChangedEventHandler PropertyChanged;
public string Message
{
get
{
return _message;
}
set
{
_message = value;
this.RaisePropertyChanged();
if (_message.Length < 10)
{
_message = _message.PadRight(10, 'a');
this.RaisePropertyChanged();
}
}
}
private void RaisePropertyChanged()
{
var handler = this.PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs("Message"));
}
}
}