首页 新闻 会员 周边

高手进来,WPF自定义控件中依赖属性绑定UserControl

0
悬赏园豆:100 [已解决问题] 解决于 2011-09-10 15:23

我有一个自定义控件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}"/>

为什么不显示呢?

求高手帮忙。

不故意的寂寞的主页 不故意的寂寞 | 初学一级 | 园豆:9
提问于:2011-08-31 20:05
< >
分享
最佳答案
0

将Page Binding到一个控件上是不可以的,因为你的view有很多属性。而且你这种实现很怪,你要实现什么效果呢?

一般情况你把一个ContentControl的Content Binding到ViewModel中,然后再Xaml中为这个ViewModel写一个DataTemplate就可以了。不需要你那么麻烦写DependencyProperty。

收获园豆:80
孤狼晖 | 菜鸟二级 |园豆:289 | 2011-09-02 20:35

你说的有道理。

不故意的寂寞 | 园豆:9 (初学一级) | 2011-09-10 15:23

@不故意的寂寞: 你好,我将所有的绑定数据放在自定义控件的viewmodel里,那么在使用控件中,怎么写这样一个viewmodel的DataTemplate呢?

诺萧 | 园豆:200 (初学一级) | 2014-06-26 11:52
其他回答(2)
0

Mode=TwoWay

并且在MyPageChangedCallback中将值赋予你要赋值的对象

收获园豆:20
菜鸟老了 | 园豆:145 (初学一级) | 2011-09-02 17:28
0

我也遇到了依赖属性绑定的问题,可以指教下吗?

SoftWare And Hardware | 园豆:202 (菜鸟二级) | 2014-03-11 11:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册