0

我是 Caliburn Micro 的新手,我正在尝试它的 WP7 实现。我想将枚举的值从一个 VM 传递到另一个 VM,但我必须遗漏一些明显的东西:我试图传递它的名称和数值,但目标 VM 总是获得默认值(对应于 0)。

我的场景更详细:假设我有一个虚拟机,其属性公开枚举值。假设枚举是 ProductFamily { Hardware, Software }; 我有一个按钮,可以打开另一个带有底层 VM 的屏幕,该屏幕应根据所选系列显示产品列表。因此,VM 在其构造函数中接收到的 INavigationService 实例上调用 Navigate,例如:

_navigation.Navigate("MyView.xaml?Family=" + _nFamily, UriKind.RelativeOrAbsolute);

(此代码传递了名称,但我也尝试使用 (int)_nFamily)。现在,我在目标 VM 中有一个相应的 Family 属性,例如

public ProductFamily Family { get { ... } set { ... } }

如果我在属性设置器中放置一个断点,我可以看到它被 CM 调用,但接收到的值对应于默认值(0,例如上面示例中的硬件),而我期待另一个。我可以确认在构建导航查询字符串时传递了正确的值。那么,目标虚拟机如何获得不正确的值呢?

谢谢大家

4

1 回答 1

0

听起来这可能是值转换逻辑中的错误。您能否在项目站点上为该问题创建一个工单并附上一个简单的示例来演示该问题?如果是这样,我可能可以相对较快地解决这个问题。

于 2011-05-07T13:41:00.427 回答