我的要求是将自定义UserControl显示为弹出窗口。我试图使用this方法在Silverlight / MVVM中实现它。但我无法找到一种方法可以将一些参数传递给我的弹出窗口。我通过this方法来实现它,但它在某种程度上无法正常工作。
这就是我的XAML的样子:
View1中按钮的行为。点击此按钮,我打开一个弹出窗口View2:
<cmds:PopupBehavior.CustomUI>
<views:View2 CategoryID="{Binding CategoryID, Mode=TwoWay}"/>
</cmds:PopupBehavior.CustomUI>
CategoryID是View2的依赖属性,并且绑定到View1视图模型中的同名属性。但由于某些原因,我总是在View2中将CategoryID设为0,即使它已在我的View1视图模型中正确设置。
我哪里错了?
编辑:
以下是View2的依赖项属性代码:
public static readonly DependencyProperty CategoryIDProperty = DependencyProperty.Register
("CategoryID",typeof(int),typeof(View2),new PropertyMetadata(0));
public int CategoryID
{
get { return (int)GetValue(CategoryIDProperty); }
set { SetValue(CategoryIDProperty, value); }
}
由于某种原因,不会调用属性的setter。
答案 0 :(得分:0)
这必须是第一个视图上的绑定问题,将代码更改为以下内容以进行测试并查看是否:
cmds:PopupBehavior.CustomUI>
<views:View2 CategoryID="5"/>
</cmds:PopupBehavior.CustomUI>
如果您的dp的setter现在被调用,请检查输出窗口以查看它无法绑定的原因