Реализация триггера источника обновления WPF

У меня есть пользовательский объект 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 ответ

Решение

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

Другие вопросы по тегам