0

Flaggedというブールプロパティを持つカスタムオブジェクトFooがあり、誰かがテキストボックスに何かを正常に入力すると、フラグがtrueに変更され、画面上の別のテキストブロックがテキストで更新されます。問題は、初期データのロードで動作させることができますが、ユーザーがフラグを反転するために何かを正常に入力しても何も起こらないことです。

私はこれの大部分をコードビハインドで行う必要があり、オブジェクトFooにINotifyPropertyChangedを実装しました。以下の私のコードの何が問題になっていますか?

ありがとう。

private Border CreateNewBorder()
    {
        Border b = new Border();
        TextBlock tb = new TextBlock();
        tb.TextAlignment = TextAlignment.Center;

        b.Style = (Style)this.FindResource("myBorder");
        tb.SetBinding(TextBlock.TextProperty, CreateBinding());
        b.Child = tb;

        return b;
    }

    private Binding CreateBinding()
    {
        Binding bind = new Binding();
        bind.Source = Foo;
        bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
        bind.Mode = BindingMode.TwoWay;
        bind.Path = new PropertyPath("Flagged");
        bind.Converter = new BoolToStringConverter();

        return bind;
    }
4

1 に答える 1

1

おそらくFooの変更通知が欠落しているようです。FooにINotifyPropertyChangedを実装し、FlaggedセッターからPropertyChangedイベントを呼び出しましたか?

于 2010-03-16T03:48:50.590 に答える