2014-09-18 3 views
0

Я пишу приложение WP 8.1 с помощью ViewModels. Почти все эти модели представлений имеют свойство обработки, которое обновляется, если что-то происходит, например, при загрузке/обновлении данных. Я связываю это с обрабатывающим кольцом. Моя проблема в том, что эта переменная задана и ссылается всюду в 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 менее беспорядочными. –

+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

Смежные вопросы