Использование свойства зависимости в WPF - PullRequest
1 голос
/ 19 октября 2010

У меня есть доступное только для чтения свойство .NET из управляемой оболочки, которая получает имя базы данных, скажем, имя свойства DBName. DBName может варьироваться в зависимости от базы данных, подключенной к приложению WPF. Это свойство getter и setter также находится в управляемой оболочке .NET. Я использую это свойство (DBName) в своем проекте WPF.

Я хочу создать свойство зависимости над этим (DBName) .NET-свойством, которое будет уведомляться при каждом изменении DBName. Я хочу показать DBName в строке состояния в приложении WPF.

Могу ли я это сделать?

1 Ответ

0 голосов
/ 19 октября 2010

Да

Вам нужно будет внедрить INotifyPropertyChanged в вашу оболочку и вызывать PropertyChanged("DBName") каждый раз, когда DBName изменяется.

Обновление

Я думаю, что эту проблему можно решить, применяя простое правило: всегда устанавливается через свойство. Если вы обеспечите это, другие программисты не совершат ошибку, забыв вызвать PropertyChanged("DBName").

public class DBWrapper : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler Propertychanged;

    private string dbName;

    public string DBName
    {
        get { return dbName; }

        private set
        {
            dbName = value;
            if(PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs("DBName"));
            }
        }
    }

    public void SomeMethodThatChangesDBName()
    {
        DBName = "SomethingNew";
    }
}

Использование кода таким способом означает, что событие вызывается при каждом обновлении DBName.

...