Я не уверен, что привязка данных работает неправильно, когда наблюдаемая переменная находится в MainWindow.cs , несмотря на то, что она работает правильно в другом классе.Я обнаружил, что проблема вызвана различным поведением этого фрагмента кода:
public bool AccountIsSelected { get { return accountIsSelected; } set { accountIsSelected = value; OnAccountIsSelectedChanged(); } }
private bool accountIsSelected;
public event EventHandler AccountIsSelectedChanged;
public void OnAccountIsSelectedChanged()
{
if (AccountIsSelectedChanged != null) //this stays null in MainWindow
AccountIsSelectedChanged(this, EventArgs.Empty);
}
Некоторые кнопки IsEnabled свойство в MainWindow привязано к переменной AccountIsSelected .Если переменная помещена в некоторый класс, отличный от MainWindow , этот класс создается в MainWindow , а экземпляр класса устанавливается как DataContext , привязка кнопок Свойство IsEnabled работает нормально, поскольку AccountIsSelectedChanged не равно нулю.Однако, если переменная помещена в MainWindow (и DataContext , установленный в this) , привязка данных не работает, поскольку AccountIsSelectedChanged остается всегда нулевым.
Мне нужно, чтобы наблюдаемая переменная находилась в MainWindow, как мне заставить работать уведомление?
Заранее благодарим за любую помощь ...