我有一个自定义控件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}"/>
为什么不显示呢?
求高手帮忙。
将Page Binding到一个控件上是不可以的,因为你的view有很多属性。而且你这种实现很怪,你要实现什么效果呢?
一般情况你把一个ContentControl的Content Binding到ViewModel中,然后再Xaml中为这个ViewModel写一个DataTemplate就可以了。不需要你那么麻烦写DependencyProperty。
你说的有道理。
@不故意的寂寞: 你好,我将所有的绑定数据放在自定义控件的viewmodel里,那么在使用控件中,怎么写这样一个viewmodel的DataTemplate呢?
Mode=TwoWay
并且在MyPageChangedCallback中将值赋予你要赋值的对象
我也遇到了依赖属性绑定的问题,可以指教下吗?