Передача значения перечисления в CaliburnMicro viewmodel через строку запроса - PullRequest
0 голосов
/ 07 мая 2011

Я новичок в Caliburn Micro и экспериментирую с его реализацией WP7.Я хотел бы передать значение перечисления от одной виртуальной машины к другой, но я должен упустить что-то очевидное: я пытался передать ее имя и числовое значение, но целевая виртуальная машина всегда получает значение по умолчанию (соответствующее 0).

Мой сценарий более подробно: скажем, у меня есть виртуальная машина со свойством, предоставляющим значение перечисления.Скажем, enum is ProductFamily {Hardware, Software};У меня есть кнопка, которая открывает другой экран с базовой виртуальной машиной, которая должна отображать список продуктов в соответствии с выбранным семейством.Поэтому виртуальная машина вызывает Navigate для экземпляра INavigationService, полученного в ее конструкторе, например:

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

(этот код передает имя, но я также пытался использовать (int) _nFamily)Теперь у меня есть соответствующее свойство Family в целевой виртуальной машине, например,

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

, если я помещаю точку останова в установщик свойств, я вижу, что она вызывается CM, но полученное значение соответствует значению по умолчанию (0, скажем Hardware в приведенном выше примере), пока я ожидаю другого.Я могу подтвердить, что правильное значение передается при построении строки запроса для навигации.Итак, как получается, что целевая виртуальная машина получает неправильное значение?

Спасибо всем

1 Ответ

0 голосов
/ 07 мая 2011

Похоже, что это может быть ошибкой в ​​логике преобразования значений. Можете ли вы создать заявку на проблему на сайте проекта и приложить простой пример, демонстрирующий проблему? Если это так, я, вероятно, смогу исправить это относительно быстро.

...