Передача значения enum в CaliburnMicro viewmodel через строку запроса

#windows-phone-7 #enums #caliburn.micro

#windows-phone-7 #перечисления #caliburn.micro

Вопрос:

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

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

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

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

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

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

Спасибо всем

Ответ №1:

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

Комментарии:

1. Спасибо, это была ошибка, вот ее решение: caliburnmicro.codeplex.com/SourceControl/changeset/changes /…