Sto provando a convertire l'applicazione Silverlight di Windows Phone 8 in un'app 8.1 Phone come parte di un'app universale. Non so se questo è rilevante perché questa è la prima volta che ho provato ad implementare correttamente i modelli di visualizzazione. Mi piacerebbe condividere i dati tra le visualizzazioni in Windows e Windows Phone. Ad ogni modo, questo è l'errore che sto ottenendo.MVVM Light "Tipo non trovato nella cache"
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
Questo è come la mia vista del modello localizzatore sembra
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
}
}
mio punto di vista XAML ha questo
DataContext="{Binding Fixtures, Source={StaticResource Locator}}"
e la mia app ha questo
<viewModel:ViewModelLocator x:Key="Locator"
d:IsDataSource="True"/>
Tutte le idee che ho sto sbagliando?
Anche dopo la registrazione, l'errore persiste. –
Anche qui ho altre dozzine di altri ViewModel registrati allo stesso modo. Non capisco perché questo sta lanciando questo errore. La cosa strana è che è vuota e eredita dalla stessa classe astratta degli altri. Confuso. Qualche altro suggerimento? – Thierry
Quando dici che un po 'di codice non è stato eseguito in modalità progettazione, non stai dicendo come lo hai risolto? Puoi spiegare? – Thierry