Rea*_*rld 8 c# mvvm-light win-universal-app
我正在尝试将我的Windows Phone 8 Silverlight应用程序转换为8.1手机应用程序,作为通用应用程序的一部分.我不知道那是否相关,因为这是我第一次尝试正确实现视图模型.我想在Windows和Windows Phone中的视图之间共享数据.无论如何,这是我得到的错误.
Error 3 Type not found in cache: ScoreAlerts.ViewModel.FixturesViewModel. C:\Users\Dave\Documents\Visual Studio 2012\Projects\Score Alerts\ScoreAlerts\ScoreAlerts.WindowsPhone\Pages\Fixtures.xaml 9 5 ScoreAlerts.WindowsPhone
Error 4 Type not found in cache: ScoreAlerts.ViewModel.HomePageViewModel. C:\Users\Dave\Documents\Visual Studio 2012\Projects\Score Alerts\ScoreAlerts\ScoreAlerts.Shared\Pages\HomePage.xaml 34 9 ScoreAlerts.WindowsPhone
Run Code Online (Sandbox Code Playgroud)
这就是我的视图模型定位器的外观
public class ViewModelLocator
{
/// <summary>
/// Initializes a new instance of the ViewModelLocator class.
/// </summary>
public ViewModelLocator()
{
if (!ViewModelBase.IsInDesignModeStatic)
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
if (ViewModelBase.IsInDesignModeStatic)
{
// Create design time view services and models
//SimpleIoc.Default.Register<IDataService, DesignDataService>();
}
else
{
// Create run time view services and models
//SimpleIoc.Default.Register<IDataService, DataService>();
}
SimpleIoc.Default.Register<HomePageViewModel>();
SimpleIoc.Default.Register<FixturesViewModel>();
}
}
[SuppressMessage("Microsoft.Performance",
"CA1822:MarkMembersAsStatic",
Justification = "This non-static member is needed for data binding purposes.")]
public HomePageViewModel Main
{
get
{
//return ServiceLocator.Current.GetInstance<HomePageViewModel>();
return SimpleIoc.Default.GetInstance<HomePageViewModel>("default");
}
}
[SuppressMessage("Microsoft.Performance",
"CA1822:MarkMembersAsStatic",
Justification = "This non-static member is needed for data binding purposes.")]
public FixturesViewModel Fixtures
{
get
{
//return ServiceLocator.Current.GetInstance<FixturesViewModel>();
return SimpleIoc.Default.GetInstance<FixturesViewModel>("default");
}
}
public static void Cleanup()
{
// TODO Clear the ViewModels
}
}
Run Code Online (Sandbox Code Playgroud)
我认为XAML有这个
DataContext="{Binding Fixtures, Source={StaticResource Locator}}"
Run Code Online (Sandbox Code Playgroud)
我的应用程序有这个
<viewModel:ViewModelLocator x:Key="Locator"
d:IsDataSource="True"/>
Run Code Online (Sandbox Code Playgroud)
我有什么想法我做错了吗?
Rea*_*rld 15
答案是一个相当简单的错误.该位未在设计模式下执行
SimpleIoc.Default.Register<HomePageViewModel>();
Run Code Online (Sandbox Code Playgroud)
我的SimpleIoc.Default.Register()代码; 在一个从未在设计模式下执行的if语句中.
| 归档时间: |
|
| 查看次数: |
9027 次 |
| 最近记录: |