VS2008とVS2010の両方をインストールしましたが、非常に奇妙な動作が見られます
VS2008には、単純なWPFアプリがあります。
<TextBox x:Name="textbox" Text="{Binding Path=MyProperty,Mode=TwoWay}"></TextBox>
と
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";
}
テキストボックスにランダムな文字列を入力してタブを押すと、textbox.Textが「強制値」にリセットされると思います。デバッグすると、アプリが強制機能で壊れているのにUIが更新されていないことがわかります。
興味深いことに、これと同じコードがVS2010で機能し、UIは強制値で更新されます。誰かが何が起こっているのか考えていますか?
WPFのバグですか?または私は何かが欠けていますか?