Member 13944054 Ответов: 0

Как я могу обеспечить обратную связь с пользователем на основе измененного свойства даже


Бойз и герлз,

Я вызываю процедуру для обновления БД изнутри OnPropertyChanged(propertyname) вот так...

protected void OnPropertyChanged(string name)
        {
            // Some TEMP employee property changed
            const string PROCNAME = "OnPropertyChanged";

            try
            {
                PropertyChangedEventHandler handler = PropertyChanged;
                if (handler != null)
                {
                    handler(this, new PropertyChangedEventArgs(name));

                    // Call routine to perist changes to DB
                    tempMethods.UpdateTempFromCollection(this, name);
                }
            }
            catch (Exception ex)
            {
                ProgLog.Log(ex.Message, PROCNAME, MODNAME);
            }
        }


Теперь мне нужно вернуть диспозицию обратно в окно WPF, но поскольку обновление БД начинается с вызова через INotifyPropertyChanged на свойство внутри коллекции, неясно, как перехватить диспозицию обновления БД и вернуть обратную связь пользователя в окно.

Как некоторые из вас справились с этим?

Что я уже пробовал:

Я попытался создать класс обратной связи, который реализует INotifyPropertyChanged и позволяет моей процедуре обновления БД изменять свойство внутри этого класса. Этот подход приводит к тому, что свойство PropertyChangedEventHanlder все время начинает NULL - даже если инициирующее свойство успешно изменено.

Мое намерение состояло в том, чтобы привязать метку внутри моего окна WPF к свойству DBFeedback моего класса обратной связи. Никакой работы. :(

<Label x:Name="lblFeedback" Width="235" Height="30" Content="{Binding Path=UserFeedback.DBUpdate}" Grid.Column="1"  HorizontalAlignment="Left" Margin="170,346,0,0" Grid.Row="1" VerticalAlignment="Top" Background="#FFEED8D8"/>

Graeme_Grant

видите ли вы какие-либо ошибки привязки в выходных данных отладки?

Member 13944054

- Привет, Грант.

Надежда. Никаких ошибок привязки. По крайней мере, я этого не вижу. Однако в окне вывода есть куча вещей.

Graeme_Grant

Похоже, вы не установили DataContext.

Member 13944054

Я установил datacontext в коде позади моего окна xaml, но класс, к которому привязана моя метка обратной связи, "обновляется" внутри класса, на который указывает datacontext. Я не уверен, что это кошерно. Будет ли это вложенная привязка и разрешено ли это?

Graeme_Grant

Вы можете разорвать привязку данных, если "обновите" объект, а не/очистите/сбросите свойства. Я не могу видеть из кода, который вы разместили. Так что будь осторожен.

0 Ответов