/// <summary> /// Active/Désctive un binding à partir de sa source /// </summary> /// <param name="source"></param> /// <param name="name"></param> /// <param name="value"></param> public static void EnableDisableBinding(object source, string name, bool value) { IOneNotify prop = GetOneNotify(source, name); if (prop != null) { prop.Enabled = value; } }
internal static IOneNotify GetOneNotify(object source, string propName) { INotifyPropertyChanged inotify = source as INotifyPropertyChanged; if (inotify != null) { EqualityWeakReference weak = new EqualityWeakReference(inotify); //le but est ici de ne s'abonner qu'une fois Dictionary <string, IOneNotify> dico = null; if (_SourceChanged.TryGetValue(weak, out dico)) { IOneNotify result = null; dico.TryGetValue(propName, out result); return(result); } } return(null); }