我在打开新窗口时在视图模型中使用此方法:
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);
}
但它不会打开新窗口。有可能解决这个问题吗?我需要在其他方法 typeof void 中使用 OpenChatScreen 方法,如果可能的话,我想打开新窗口。感谢您的帮助。
代码改善:
我试试这个:
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*
我不知道如何在 void 方法中使用 OpenChatScreen 方法。