Я использую этот метод в модели просмотра при открытии нового окна:
public IEnumerable<IResult> OpenChatScreen()
{
if (!_activeChatScreens.ContainsKey(nick))
{
var chatScreen = new ShowWindow("ChatScreen")
.InitializeWith(_service.DetailData(nick));
_activeChatScreens.Add(nick, chatScreen);
yield return chatScreen;
}
}
Этот метод, например, привязывается к кнопке.
Я пытаюсь использовать этот метод в другом методе void. Что-то вроде этого:
public void SomeMethod(string nick)
{
OpenChatScreen(nick);
}
Но не открывает новое окно. Возможно ли решить эту проблему? Мне нужно использовать метод OpenChatScreen в другом методе типа void, и я хотел бы открыть новое окно, если это возможно. Спасибо за помощь.
К кодекайдзен:
Я пробую это:
public void SomeMethod(string nick)
{
new IResult[] { OpenChatScreen(nick) };
}
Я получаю эту ошибку:
* Ошибка 2. Не удается неявно преобразовать тип «System.Collections.Generic.IEnumerable» в «Caliburn.Micro.IResult». Существует явное преобразование (вам не хватает приведения?) C:\Users\Jan\Documents\Visual Studio 2010\Projects\C#\Pokec_Messenger\ver.beta\Pokec__Messenger\Spirit_Caliburn_Micro_v1.1\ViewModels\MessengerViewModel.cs 314 45 Spirit_Caliburn_Micro_v1. 1*
Итак, я пытаюсь привести к IResult:
var w = OpenChatScreen(rp.Nick) as IResult;
new IResult[] { w };
ошибка:
*Ошибка 1 В качестве оператора можно использовать только выражения присваивания, вызова, увеличения, уменьшения и нового объекта C:\Users\Jan\Documents\Visual Studio 2010\Projects\C#\Pokec_Messenger\ver.beta\Pokec__Messenger\Spirit_Caliburn_Micro_v1.1 \ViewModels\MessengerViewModel.cs 314 29 Spirit_Caliburn_Micro_v1.1*
Я понятия не имею, как использовать метод OpenChatScreen в методе void.