Реализация триггера источника обновления WPF - PullRequest
0 голосов
/ 16 марта 2010

У меня есть пользовательский объект Foo с логическим свойством с именем Flagged, и когда кто-то успешно вводит что-то в текстовое поле, он помечается как true и обновляет другой текстовый блок на экране с помощью некоторого текста. Проблема в том, что я могу заставить его работать при загрузке исходных данных, но ничего не происходит, когда пользователь успешно набирает что-то, чтобы перевернуть флаг.

Я должен сделать большую часть этого кода, и я реализовал INotifyPropertyChanged для моего объекта Foo. Что не так с моим кодом ниже?

Спасибо.

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;
    }

1 Ответ

1 голос
/ 16 марта 2010

Похоже, вы просто пропускаете уведомления об изменениях в Foo. Вы реализовали INotifyPropertyChanged в Foo и вызвали событие PropertyChanged из установщика помеченного флага?

...