2 wpf ienumerable caliburn.micro
我在打开新窗口的视图模型中使用此方法:
public IEnumerable<IResult> OpenChatScreen()
{
if (!_activeChatScreens.ContainsKey(nick))
{
var chatScreen = new ShowWindow("ChatScreen")
.InitializeWith(_service.DetailData(nick));
_activeChatScreens.Add(nick, chatScreen);
yield return chatScreen;
}
}
Run Code Online (Sandbox Code Playgroud)
该方法例如是按钮上的绑定.
我尝试在其他void方法中使用此方法.像这样的东西:
public void SomeMethod(string nick)
{
OpenChatScreen(nick);
}
Run Code Online (Sandbox Code Playgroud)
但它没有打开新的窗口.有可能解决这个问题吗?我需要在其他方法typeof void中使用OpenChatScreen方法,如果有可能,我想打开新窗口.谢谢你的帮助.
要codekaizen:
我试试这个:
public void SomeMethod(string nick)
{
new IResult[] { OpenChatScreen(nick) };
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
*错误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 };
Run Code Online (Sandbox Code Playgroud)
错误:
*错误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方法.
| 归档时间: |
|
| 查看次数: |
1881 次 |
| 最近记录: |