Ray*_*sen 6 data-binding silverlight
在下面的示例中,我们将ViewModel绑定到一个名为Message的单个属性的视图.此属性绑定到具有双向绑定的TextBox.对于这个测试,我们在setter中做了一些价值强制,并且再次改变了属性.
在Silverlight 4中,这非常有效.如果在属性设置器中更改了消息属性,则文本框将显示新值.例如,在文本框中键入"A"并失去焦点会导致Aaaaaaaaaa出现,因为值已更改.
然而,在Silverlight 5中,这似乎被打破/改变了.在setter中修改值后,永远不会触发getter.在它们之间添加IValueConverter,表明从不命中Convert/ConvertBack方法.似乎在第4版和第5版之间发生了根本性的变化.是否有任何变化?这是一个错误吗?
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"));
}
}
}
Run Code Online (Sandbox Code Playgroud)
Microsoft 已确认这是 Silverlight 5 中的一个错误。它仅发生在调试模式下,因此适用于发布模式。
如果禁用 XAML 绑定调试,问题就会消失。
Binding.IsDebuggingEnabled = false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1236 次 |
| 最近记录: |