通过查询字符串将枚举值传递给CaliburnMicro viewmodel

时间:2011-05-06 22:43:06

标签: windows-phone-7 enums caliburn.micro

我是Caliburn Micro的新手,我正在尝试其WP7实施。我想将一个虚拟机的值从一个虚拟机传递到另一个虚拟机,但我必须忽略一些明显的东西:我试图传递其名称及其数值,但目标虚拟机始终获取默认值(对应于0)。

我的场景更详细:说我有一个具有暴露枚举值的属性的VM。说枚举是ProductFamily {硬件,软件};我有一个按钮,打开另一个带有底层VM的屏幕,该屏幕应显示根据所选系列的产品列表。因此,VM调用Navigate在其构造函数中收到的INavigationService实例,如:

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

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

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

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

感谢所有

1 个答案:

答案 0 :(得分:0)

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