В моем поиске принято решение об объединении обработчика событий после выполнения операции invoke.Проблемы с IValueConverter и asynch DomainService Invoke в C#
К сожалению, моему IValueConverter необходимо вернуть значение, поэтому обработчик не очень помогает. Я также пробовал цикл do/while до завершения операции, но цикл никогда не закрывается.
Я также пробовал просто операцию ожидания, но он все равно возвращает null. Я знаю, что мой DomainService возвращает правильное значение, но конвертер никогда не увидит его.
Есть ли что-нибудь, что я могу сделать в этом случае? Имея конвертер, который работает, удалит/уменьшит почти все будущие проблемы, которые я могу увидеть.
Мой код: (мне нужно что-то вроде этого, что работает)
InspectDomainContext context = new InspectDomainContext();
string name;
InvokeOperation<string> inv;
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string id = (string)value;
inv = context.GetName(id);
inv.Completed += new EventHandler(inv_Completed);
// return here after the handler has completed
return name;
}
void inv_Completed(object sender, EventArgs e)
{
name = inv.Value;
}
Ничего себе, отличный ответ! Я не думал использовать ViewModel, но это имеет смысл. – xhedgepigx
Фу, я рад, что вы используете ViewModel, или это были бы два ответа дерьма! Надеюсь, это поможет вам получить то, что вам нужно. –