2010-07-12 5 views
0

내 응용 프로그램에 여러 viewModel이 있고 ViewModelLocator mvvm light에 바인딩/사용했습니다. 내 DailyActivities.xaml 페이지 중 하나에서 버튼을 끝냈습니다. 하지만 그것을 클릭하면 ViewModelLocator에서 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."와 같은 오류가 발생합니다. 제어는 다음 줄에 온다.개체 참조가 ViewModelLocator의 개체 인스턴스로 설정되지 않았습니다. Mvvm Light

public static void ClearActivities() { _activities.Cleanup(); // 여기에서 오류 _activities = null; } 여기

는 ViewModelLocator에서 DailyActivitiesViewModel 코드입니다 :

개인 정적 ActivitiesViewModel의 _activities는;

  public static ActivitiesViewModel ActivitiesStatic 
    { 
     get 
     { 
      if (_activities == null) 
      { 
       CreateActivities(); 
      } 

      return _activities; 
     } 
    } 

    /// <summary> 
    /// Gets the ViewModelPropertyName property. 
    /// </summary> 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", 
     "CA1822:MarkMembersAsStatic", 
     Justification = "This non-static member is needed for data binding purposes.")] 
    public ActivitiesViewModel Activities 
    { 
     get 
     { 
      return ActivitiesStatic; 
     } 
    } 

    /// <summary> 
    /// Provides a deterministic way to delete the ViewModelPropertyName property. 
    /// </summary> 
    public static void ClearActivities() 
    { 
     _activities.Cleanup(); --Error here 
     _activities = null; 
    } 

    /// <summary> 
    /// Provides a deterministic way to create the ViewModelPropertyName property. 
    /// </summary> 
    public static void CreateActivities() 
    { 
     if (_activities == null) 
     { 
      _activities = new ActivitiesViewModel(); 
     } 
    } 

친절히 제안 하시겠습니까? 당신이 그것을 사용하기 전에 필드가 존재하는 경우

덕분에

답변

1

당신은 결정해야합니다 : 필드 _activities이 이미 null의 경우 정리가 필요하지 않습니다 것 같습니다.

public static void ClearActivites() 
{ 
    if (null == _activities) return; 
    _activities.Cleanup(); 
    _activities = null; 
} 
+0

@IanR처럼 뭔가를 할 수 없습니다. 위의 고집은 나를 많이 도왔다. 하지만 이제 한 창에 확인 및 취소 단추가있는 대화 상자가 생깁니다. 다른 창에서이 창으로 갔을 때이 버튼을 클릭하면 OK 또는 Cancel을 클릭합니다. 취소를 클릭하면 창이 닫힙니다. 그러나 다시 프로세스를 반복하고 취소 버튼을 두 번 클릭하고 다시 n을 클릭하면 세 번에 네 번을 의미합니다. 친절하게 제안 하시겠습니까? 감사합니다. – Tarun

+0

이 대화 상자에서 null을 확인하는 방법은 무엇입니까? 친절히 제안 하시겠습니까? – Tarun

+0

@ 타룬 : 의견에 귀하의 질문에 대한 몇 가지 코드를 공유하십시오. 그렇지 않으면 새로운 질문을하는 것이 좋습니다. – Amsakanna