2015-05-26 31 views
4

我正在開發Windows Phone 8.1通用應用程序並存在以下問題。Windows Phone通用應用程序在導航時拋出AccessViolation

該應用程序具有多個視圖及其對應的Caliburn.Micro ViewModels,其中兩個包含一個MapControl,其中的引腳綁定到MapLocation對象的Observable集合。

的MapLocation類有如下:

public class MapLocation : PropertyChangedBase 
{ 
    private string _title; 
    public string Title 
    { 
     get { return _title; } 
     set 
     { 
      _title = value; 
      NotifyOfPropertyChange(); 
     } 
    } 

    private Geopoint _geoPoint; 
    public Geopoint GeoPoint 
    { 
     get { return _geoPoint; } 
     set 
     { 
      _geoPoint = value; 
      NotifyOfPropertyChange(); 
     } 
    } 

    private Uri _imageUri; 
    public Uri ImageUri 
    { 
     get { return _imageUri; } 
     set 
     { 
      _imageUri = value; 
      NotifyOfPropertyChange(); 
     } 
    } 

    private bool _isMoving; 
    public bool IsMoving 
    { 
     get { return _isMoving; } 
     set 
     { 
      _isMoving = value; 
      NotifyOfPropertyChange(); 
     } 
    } 
    private Windows.Services.Maps.MapAddress _address; 
    public Windows.Services.Maps.MapAddress Address 
    { 
     get { return _address; } 
     set 
     { 
      _address = value; 
      NotifyOfPropertyChange(); 
     } 
    } 
} 

列表是通過DispatcherTimer來顯示所有項目更新的位置經常更新。

我面臨的問題是,每次我瀏覽一個頁面後,至少訪問過一次,我得到一個AccessViolation異常和應用程序崩潰。

我猜這可能與我的ViewModels的某種兌現有關。

有沒有人見過這種行爲?

+0

你如何將項目添加到ObservableCollection? – mvermef

+0

對不起,Type屬性不存在......它被遺忘了。 –

+0

我想,但我拋出了我原來的問題。你是否挖掘出了是否實際上是違反NavigationService或者與收集相關的NavigationService?你也有記錄啓用? – mvermef

回答

0

日誌記錄CM,可以放置到引導程序的配置或app.xaml.cs

LogManager.GetLog =類型=>新DEBUGLOG(類型);

這將有助於解決綁定問題。至於挖入異常,在主要異常處理程序或後退導航上放置調試點,我懷疑該集合...

相關問題