2
초기화 방법과 완료된 이벤트가 모두 정적 인 비동기 호출을 처리하기 위해 Reactive Extensions를 사용하여 코드를 작성하려고합니다. LanguageManager는 정적 클래스가 아닌 인스턴스이기 때문에 나는Observable.FromEvent를 정적 이벤트와 함께 사용하는 방법?
var languageSetsLoaded = Observable
.FromEvent<LoadLanguageSetsCompletedEventArgs>(
LanguageManager, "LanguageSetsLoaded")
을 사용할 수 없습니다, 그래서 나는
var languageSetsLoaded = Observable
.FromEvent<LoadLanguageSetsCompletedEventArgs>(
h => LanguageManager.LanguageSetsLoaded += h,
h => LanguageManager.LanguageSetsLoaded -= h)
을 시도하지만 그 때문에 '객체'를 입력 변환 할 수 없습니다 "람다 식을 구문 오류가 있습니다 델리게이트 형식이 아닙니다. " 이벤트는 이렇게 선언되었습니다.
public delegate void LoadLanguageSetsCompletedHandler(LoadLanguageSetsCompletedEventArgs e);
public static event LoadLanguageSetsCompletedHandler LanguageSetsLoaded = delegate { };
그래서 저는 이것이 델리게이트 형식이며 실제로 정적이라는 사실은 오해의 소지가있는 오류 설명을 생성하고 있다고 생각합니다.
이렇게하는 방법이 있습니까? 아니면 이런 반응이없는 코드를 사용해야할까요?
private void ChangeLanguage(string languageCode)
{
LanguageManager.LanguageSetsLoaded += OnLanguageSetsLoaded;
LanguageManager.LoadLanguageSets(languageCode, BaseApp.InTranslationMode);
}
private void OnLanguageSetsLoaded(LoadLanguageSetsCompletedEventArgs e)
{
LanguageManager.LanguageSetsLoaded -= OnLanguageSetsLoaded;
OnPropertyChanged("DummyLanguageResource");
}