日期:2014-05-20  浏览次数:21132 次

高手进来,WPF自定义控件中依赖属性绑定UserControl
我有一个自定义控件Class MyUserControl,
里面有一个属性MyPage,类型为UserControl。为了实现绑定,我把它定义成了依赖属性。
public class MyControl
{
    public static readonly DependencyProperty MyPageProperty = DependencyProperty.Register(
            "MyPage",
            typeof(UserControl),
            typeof(MyControl),
            new PropertyMetadata(new PropertyChangedCallback(MyPageChangedCallback))
            );


    public UserControl MyPage
        {
            get
            {
                
                return GetValue(MyPageProperty) as UserControl;
            }
            set
            {
                if (MyPage!= value)
                {
                    SetValue(MyPageProperty, value);
                    //
                }
            }
        }
  //省略其它代码
}
在xaml中,我想这样使用。我用的mvvm模式,View在ViewModel中定义了,为UserControl类型。
<MyControl MyPage="{Binding View}"/>
为什么不显示呢?
求高手帮忙。
------最佳解决方案--------------------
在View中的构造函数里加一行,
this.DataContext=this;

------其他解决方案--------------------
"将Page Binding到一个控件上是不可以的,因为你的view有很多属性。而且你这种实现很怪,你要实现什么效果呢?
一般情况你把一个ContentControl的Content Binding到ViewModel中,然后再Xaml中为这个ViewModel写一个DataTemplate就可以了。不需要你那么麻烦写DependencyProperty。"
这是我在博客园提问时有人的回复,我觉得有道理。开始的路我就走偏了。