8

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のバグですか?または私は何かが欠けていますか?

4

1 に答える 1

3

を介して強制的に更新する必要がありますUpdateTarget()http://social.msdn.microsoft.com/forums/en-US/wpf/thread/c404360c-8e31-4a85-9762-0324ed8812ef/をご覧ください

于 2010-06-09T06:40:25.097 に答える