你这里绑定的应该是实体对象的属性而不能是控件的属性,控件属性太多,都显示不适合,除非过滤,那不如直接绑定实体对象,WPF本身就是通过实体对象来控制界面显示的,给你的属性显示控件绑定一个实体类上去会更好。

解决方案 »

  1.   

    例如你定义一个符号类:
        public class fuhao : INotifyPropertyChanged
        {
            public string Name { get; set; }        private BitmapImage source;
            public BitmapImage Source
            {
                get
                {
                    return source;
                }
                set
                {
                    source = value;
                    OnPropertyChanged("Source");
                }
            }        #region 事件通知
            public event PropertyChangedEventHandler PropertyChanged;        protected void OnPropertyChanged(string propertyName)
            {
                PropertyChangedEventHandler handler = this.PropertyChanged;
                if (handler != null)
                {
                    handler(this, new PropertyChangedEventArgs(propertyName));
                }
            }
            #endregion
        }
    然后在拖放到画布区域的控件上new一个这样的类的实例,设置到控件的DataContext属性上,同时让设置该实例的Name 让为符号名字,设置该实例的Source属性为符号图片,而控件为自定义控件,预先设置好了绑定,例如你用Image控件的话,预先设置ImageSource属性绑定为{binding Source},这样当运行时设置了其DataContext属性后,自动就显示符号图片了,而那个属性显示器里面则在点击符号控件后,绑定其DataContext属性,那个属性就是之前设置的绑定实例。那样显示的就是你自己定义的自定义属性了,想定义多少个属性,就显示多少个属性。