c# - two - wpf binding context
Dependencia de coerciĆ³n de propiedad problemas vinculantes (1)
Tienes que forzar una actualización a través de UpdateTarget()
. Eche un vistazo a http://social.msdn.microsoft.com/forums/en-US/wpf/thread/c404360c-8e31-4a85-9762-0324ed8812ef/
Tengo ambos VS2008 y VS2010 instalados, y veo un comportamiento muy extraño
En VS2008, tengo una aplicación WPF simple:
<TextBox x:Name="textbox" Text="{Binding Path=MyProperty,Mode=TwoWay}"></TextBox>
y
public Window1()
{
InitializeComponent();
DataContext = this;
}
public string MyProperty
{
get { return (string)GetValue(MyPropertyProperty); }
set { SetValue(MyPropertyProperty, value); }
}
public static readonly DependencyProperty MyPropertyProperty = DependencyProperty.Register("MyProperty", typeof(string), typeof(Window1), new PropertyMetadata("default",null,Coerce));
private static object Coerce(DependencyObject d, object baseValue)
{
return "Coerced Value";
}
Cuando ingreso una cadena aleatoria en el cuadro de texto y presiono la pestaña, espero que el cuadro de texto se restablezca a "Valor coercitivo". Si depuro veo que la aplicación se rompe en la función Coerce pero la interfaz de usuario no se actualiza.
Curiosamente, este mismo código funciona en VS2010, la interfaz de usuario se actualiza con valor coercitivo. ¿Alguien tiene una idea de lo que está pasando?
¿Es un error de WPF? ¿O me estoy perdiendo algo?