Esempio n. 1
0
        /// <summary>
        /// 得到对象的路径,以路径分隔符分隔。
        /// </summary>
        /// <param name="stopObject">
        /// 搜索到指定的祖先对象,就停止路径的搜索。路径中不包括 stopObject 的信息。
        /// 搜索过程中如果碰到非 ViNamedObject 类型的对象,或者对象的名称为空时,
        /// 也会主动停止路径的递归。
        /// </param>
        /// <returns>对象路径</returns>
        public virtual string GetPath(ViObject stopObject)
        {
            // 从自己开始
            ViNamedObject obj  = this;
            string        path = obj.Name;

            while (true)
            {
                // 已经到了指定的祖先对象?
                if (obj.Parent == stopObject)
                {
                    break;
                }

                // 必须要是有名字的对象
                obj = obj.Parent as ViNamedObject;
                if (obj == null)
                {
                    break;
                }
                if (string.IsNullOrEmpty(obj.Name))
                {
                    break;
                }

                // 形成路径名称
                path = obj.Name + PathSeperator + path;
            }

            return(path);
        }
Esempio n. 2
0
 public ViPropertyChangedEventArgs(ViObject owner, uint changeType, DependencyPropertyChangedEventArgs e)
 {
     this.Owner      = owner;
     this.ChangeType = changeType;
     this.e          = e;
 }
Esempio n. 3
0
 public void SetParent(ViObject parent)
 {
     this.Parent = parent;
 }