工具包二进制版本:4.0.30319
我在使用带有 SL5 二进制文件的 SimpleIoc 的密钥注册视图模型时没有成功。我让它工作的唯一一次是当我在 SL4 项目中使用Mix 11 导航示例中的 SL4 二进制文件时。
这是使用 SimpleIoc 注册我的 VM 的代码:
if (!SimpleIoc.Default.Contains<DeviceListDetailViewModel>(commandParam))
{
SimpleIoc.Default.Register(
() => new DeviceListDetailViewModel(this.Repository, this.NavService) { NavParameter = commandParam }, commandParam);
}
这是我在视图中检查实例并获得“未找到项目”的地方:
if (DataContext == null)
{
var url = e.Uri.ToString();
NavParam = url.Substring(url.IndexOf("?") + 1);
if (!SimpleIoc.Default.Contains<DeviceListDetailViewModel>(NavParam))
{
MessageBox.Show("Item not found");
return;
}
var vm = SimpleIoc.Default.GetInstance<DeviceListDetailViewModel>(NavParam);
DataContext = vm;
}
我究竟做错了什么?