То, что я делал в прошлом, - это определение логических свойств в модели представления, которые указывают, что выполняется длительный расчет. Например, IsBusy
, для которого установлено значение true при работе и false в режиме ожидания.
Затем в представлении я привязываюсь к этому и отображаю индикатор выполнения, или счетчик, или подобное, пока это свойство имеет значение true. Лично я никогда не устанавливал курсор, используя этот подход, но я не понимаю, почему это невозможно.
Если вам нужен еще больший контроль, а простого логического значения недостаточно, вы можете использовать VisualStateManager , который вы запускаете из своей модели представления. При таком подходе вы можете подробно указать, как должен выглядеть пользовательский интерфейс в зависимости от состояния модели представления.
Я не уверен в проблеме вашего подхода (попробуйте добавить трассировку стека в свой пост), но я это делаю следующим образом:
var configMap =
new ExeConfigurationFileMap
{
ExeConfigFilename = externalConfigurationFile
};
System.Configuration.Configuration externalConfiguration =
ConfigurationManager.OpenMappedExeConfiguration(
configMap,
ConfigurationUserLevel.None);
foreach (var setting in externalConfiguration.AppSettings.Settings)
{
...
}
externalConfiguration.Save(ConfigurationSaveMode.Full);