当我尝试打开一个新的viewmodel时,我收到以下错误:
无法从定位器MvxDefaultViewModelLocator加载类型EasyBudget.Core.ViewModels.GridCategoryViewModel的ViewModel
它也显示:
未找到符号。
显示无法找到或打开PDB文件。
我的观点模型:
public class HomeViewModel
: MvxViewModel
{
private Cirrious.MvvmCross.ViewModels.MvxCommand _listCommandCategory;
public System.Windows.Input.ICommand ListCommandCategory
{
get
{
_listCommandCategory = _listCommandCategory ?? new Cirrious.MvvmCross.ViewModels.MvxCommand(DoListCategory);
return _listCommandCategory;
}
}
private void DoListCategory()
{
ShowViewModel<GridCategoryViewModel>();
}
}
我的另一个视图模型:
public partial class GridCategoryView : MvxPhonePage
{
public GridCategoryView()
{
InitializeComponent();
}
}
有谁知道我可以伪造什么?
祝你好运
Wilton Ruffato Wonrath
答案 0 :(得分:1)
我认为问题很可能出现在构建ViewModel的地方:
您发布了“我的其他视图模型”,您实际上只为其他视图发布了代码。你可以发布该视图附带的ViewModel的代码吗?
如果您启用调试器来中断所有异常,那么这可能会帮助您找到加载期间出现的问题(在https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross/ViewModels/MvxDefaultViewModelLocator.cs内)。
如果你想要一个pdb用于调试器符号,那么这些可以在http://github.com/slodge/MvvmCross-Binaries的文件夹中找到 - 在VS2012 / Release文件夹中。我们目前正在尝试通过SymbolSource.org解决这些问题(本周首先得到了请求/建议)
最后,如果您想从Windows版本中查看跟踪并使用nuget中的发行包,那么您可以通过覆盖Setup.cs文件中的CreateDebugTrace()
来执行此操作 - 例如尝试:
protected override IMvxTrace CreateDebugTrace()
{
return new MvxDebugTrace();
}
如果您想使用:
,还可以在核心代码中添加一些调试跟踪 Mvx.Trace(format, args...)
Mvx.Warning(format, args...)
Mvx.Error(format, args...)
答案 1 :(得分:0)
也许,您忘记了将ViewModel类型添加到通用MvxPhonePage中。 试试这个:
public partial class GridCategoryView : MvxPhonePage<GridCategoryViewModel>