从 XAML 传递参数时出现问题

问题描述 投票:0回答:1

我的要求是将自定义用户控件显示为弹出窗口。我正在尝试使用 this 方法在 Silverlight/MVVM 中实现此功能。但我无法找到一种方法可以将一些参数传递给我的弹出窗口。我通过 this 方法来实现它,但它不知何故不起作用。

这就是我的 XAML 的样子:

View1 中按钮的行为。单击此按钮后,我将打开一个弹出视图2:

<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); }
}

由于某种原因,属性的设置器没有被调用。

c# wpf silverlight xaml mvvm
1个回答
0
投票

这一定是第一个视图上的绑定问题,将您的代码更改为以下代码来测试并查看是否是:

<cmds:PopupBehavior.CustomUI> 
    <views:View2 CategoryID="5"/> 
</cmds:PopupBehavior.CustomUI> 

如果你的 dp 的 setter 现在被调用,请检查你的输出窗口以了解它无法绑定的原因

© www.soinside.com 2019 - 2024. All rights reserved.