我即将创建WPF应用程序.到目前为止,在uni中我们完成GUI的唯一方法是使用一个主窗口和一个代码隐藏文件来处理其按钮点击等.
我的问题是,随着应用程序的增长,GUI会增长,文件后面的代码大小会变得无法控制!
我已经为我的系统确定了大约15个主要用例(例如:输入详细信息,查看详细信息等...).我正在创建一个主窗口(大小:480x320),由15个单独的屏幕组成(每个用例一个).这可以通过一个居中和拉伸的TabControl来实现,它有15个TabItem.或者更可能的是它可能只是一堆分层容器,一个在另一个之上(一次只能看到一个).
关键是,有15个单独的屏幕,我的代码隐藏文件将变得庞大(更不用说xaml文件!):在状态之间玩杂耍 - 使14折叠/隐藏并使一个可见,处理15个不同屏幕的控件.
有没有办法拥有15个单独的表单,每个表单都有自己的代码隐藏文件,而不是一个表单上的15个TabItems,然后根据需要创建一个主引擎并将其废弃?当然,它应该看起来好像是一种形式,而不是15种弹出窗口.
我该如何处理?您将如何处理长达数千行的xaml和代码隐藏文件的问题?
嘿,我试图从Web方法返回用户定义的类.该类具有属性和/或方法.给定以下Web方法:
[WebMethod]
public List<MenuItem> GetMenu()
{
List<MenuItem> menuItemList = new List<MenuItem>();
menuItemList.Add(new MenuItem());
menuItemList.Add(new MenuItem());
menuItemList.Add(new MenuItem());
return menuItemList;
}
Run Code Online (Sandbox Code Playgroud)
现在,假设通过在新创建的控制台应用程序中添加Web引用来使用此Web服务.以下代码用于测试它:
public void TestGetMenu()
{
MenuService service = new MenuService.MenuService();
service.MenuItem[] menuItemList = service.GetMenu();
for (int i = 0; i < menuItemList.Length; i++)
{
Console.WriteLine(menuItemList[i].name);
}
Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)
首先,如果MenuItem类包含属性,这不起作用...此外,如果MenuItem类包含一个方法,则对Web方法的调用不会失败,但该方法不在生成的代理类中.例如:menuItemList [i] .getName()不存在.为什么?我错过了什么?
//This works
public class MenuItem
{
public string name;
public MenuItem()
{
name = "pizza";
}
}
//This crashes / doesnt work
public class MenuItem
{
private string name; …
Run Code Online (Sandbox Code Playgroud)