2014-09-18 4 views
0

ViewModels을 사용하여 WP 8.1 앱을 작성했습니다. 거의 모든 이러한 뷰 모델에는 예를 들어 데이터로드/업데이트와 같은 일이 발생하면 업데이트되는 처리 속성이 있습니다. 나는 이것을 가공 반지에 묶는다. 내 문제는이 변수가 설정되어 있고 그것을 지저분 해 보이는 viewmodel의 모든 곳에서 참조한다는 것입니다. 이 일을 더 우아한 방법이 있습니까? 모든 처리 방법에는 반환 값이 없다고 가정 샘플WP 8.1 ViewModel 처리 속성

public class CustomViewModel 
{ 
    public bool Processing{get;set;} 

    Public Void Load() 
    { 
     Processing = true; 
     //Logic to load the data 
     Processing = false; 
    } 

    Public Void Save() 
    { 
     Processing = true; 
     //Logic to save the data 
     Processing = false; 
    } 
} 
+0

추상 기본 VM에서 VM을 상속하고 거기에 처리 논리를 넣어보십시오. 이것은 주 VM에서의 작업을 덜어줍니다. –

+0

고마워, 나는 이것이 내가 가진 유일한 선택이라고 생각한다. – user3547774

답변

0

이하 감안할 때, 하나의 가능한 방법은 Action Delegate 파라미터를 수용하는 방법을 생성하는 것이다. 이 방법은 Processing 속성을 설정하고 메서드 매개 변수로 전달 된 Action를 호출 할 의무가 있습니다

사용 예제
public bool Processing { get; set; } 

private void Process(Action process) 
{ 
    Processing = true; 
    process(); 
    Processing = false; 
} 

public void Load() 
{ 
    //Logic to load the data 
} 

public void Save() 
{ 
    //Logic to save the data 
} 

:

//pass 'Load' method as parameter to load data : 
Process(Load); 
//pass 'Save' method as parameter to save data : 
Process(Save); 

비록, 나는 Action 대리인이 지원되는지 여부를 내 자신을 확인하지 않은 WP 8.1 보편적 인 애플 리케이션, 그래서 당신에게서 듣기 좋을 것입니다.

+0

프로세스 메서드는 각각 고유 한 서명을 가지고 있기 때문에 이것이 작동하지 않을 것이라고 생각합니다. – user3547774

관련 문제