Я использую этот метод в модели представления при открытии нового окна:
public IEnumerable<IResult> OpenChatScreen()
{
if (!_activeChatScreens.ContainsKey(nick))
{
var chatScreen = new ShowWindow("ChatScreen")
.InitializeWith(_service.DetailData(nick));
_activeChatScreens.Add(nick, chatScreen);
yield return chatScreen;
}
}
Этот метод является, например, привязкой к кнопке.
Я пытаюсь использовать этот метод в другом пустом методе.Примерно так:
public void SomeMethod(string nick)
{
OpenChatScreen(nick);
}
Но не открывается новое окно.Возможно ли решить эту проблему?Мне нужно использовать метод OpenChatScreen в другом методе typeof 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.