高手进来,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。"
这是我在博客园提问时有人的回复,我觉得有道理。开始的路我就走偏了。