コード例 #1
0
ファイル: DataBinder.cs プロジェクト: pgourlain/binder
        /// <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;
            }
        }
コード例 #2
0
ファイル: DataBinder.cs プロジェクト: pgourlain/binder
        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);
        }