나는 작업중인 Windows 7 전화 응용 프로그램이 있습니다. 인터페이스가있는 몇 가지 서비스 클래스를 만들었지 만, 매번이 뷰를 탐색하려고 할 때마다 현재 충돌합니다.MVVM Light IoC가 바인딩되지 않습니까? 내가 뭘 놓치고 있니?
I 설치 (WMAppManifest.xml을 통해)를 즉시 에뮬레이터로드 이러한보기 중 하나를로드 할 수 내 프로젝트
내가 가진이
public interface IGpsService
{
void StartGps();
GeoPosition<GeoCoordinate> CurrentPostion();
}
public class GpsService : IGpsService
{
private GeoCoordinateWatcher gpsWatcher;
public GpsService()
{
gpsWatcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default)
{
MovementThreshold = 20,
};
}
public void StartGps()
{
gpsWatcher.Start();
}
public GeoPosition<GeoCoordinate> CurrentPostion()
{
return gpsWatcher.Position;
}
}
같은 내보기 모델 로케이터
static ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
if (ViewModelBase.IsInDesignModeStatic)
{
SimpleIoc.Default.Register<IGpsService, Design.GpsDataService>();
}
else
{
SimpleIoc.Default.Register<IGpsService, GpsService>();
}
SimpleIoc.Default.Register<AddProductPriceVm>();
}
// AddProductPrice.xaml.cs
public AddProductPrice(IGpsService gpsService)
{
InitializeComponent();
}
IOC는보기 모델에만 연결되어 있습니까? 그게 내 코드 뒤에있는 것처럼 작동하지 않는 이유야?
뒤에서 코드를 사용하는 것이 훨씬 쉽기 때문에 뒤에서 코드와 MVVM을 혼합하여 사용하고 있습니다. NavigationFailed
// Code to execute if a navigation fails
private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
{
if (System.Diagnostics.Debugger.IsAttached)
{
// A navigation has failed; break into the debugger
System.Diagnostics.Debugger.Break();
}
}
오류 메시지가 무엇입니까? –
Opps는 그것을 게시하는 것을 잊었습니다. 지금 해. – chobo2