У меня есть класс следующим образом
public partial class Configuration : INotifyPropertyChanged
{
private bool _isToolTips;
public bool IsToolTips
{
get { return _isToolTips; }
set { Set(this, "IsToolTips", ref _isToolTips, value, PropertyChanged); }
}
#region INotifyPropertyChanged functionality
public static void Set<T>(object owner, string propName, ref T oldValue, T newValue,
PropertyChangedEventHandler eventHandler)
{
// make sure the property name really exists
if (owner.GetType().GetProperty(propName) == null)
{
throw new ArgumentException("No property named ‘" +
propName + "‘ on " + owner.GetType().FullName);
}
// we only raise an event if the value has changed
if (Equals(oldValue, newValue)) return;
oldValue = newValue;
if (eventHandler != null)
{
eventHandler(owner, new PropertyChangedEventArgs(propName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void notifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
#endregion INotifyPropertyChanged functionality
}
Этот класс скомпилирован в отдельную сборку. Затем я добавляю его в свой конструктор MainWindow следующим образом [править]
public MainWindow()
{
initializeAttributes();
InitializeComponent();
CurrentConfig = new Configuration
{
IsToolTips = true
};
DataContext = CurrentConfig;
composeModules();
}
[конец редактирования]
и в моем XMAL у меня есть это [править]
<MenuItem Name="ToolTips"
Header="Tool Tips"
IsCheckable="True"
IsChecked="{Binding Source=CurrentConfig,
Path=IsToolTips,
Mode=TwoWay}"
Click="onToolTipsClick">
</MenuItem>
[конец редактирования]
Проблема в том, что член «PropertyChanged» моего класса конфигурации всегда имеет значение null. Куда я иду не так?