小编Mik*_*key的帖子

Windows窗体/ WPF太大了,我怎么能将它拆分?

我即将创建WPF应用程序.到目前为止,在uni中我们完成GUI的唯一方法是使用一个主窗口和一个代码隐藏文件来处理其按钮点击等.

我的问题是,随着应用程序的增长,GUI会增长,文件后面的代码大小会变得无法控制!

我已经为我的系统确定了大约15个主要用例(例如:输入详细信息,查看详细信息等...).我正在创建一个主窗口(大小:480x320),由15个单独的屏幕组成(每个用例一个).这可以通过一个居中和拉伸的TabControl来实现,它有15个TabItem.或者更可能的是它可能只是一堆分层容器,一个在另一个之上(一次只能看到一个).

关键是,有15个单独的屏幕,我的代码隐藏文件将变得庞大(更不用说xaml文件!):在状态之间玩杂耍 - 使14折叠/隐藏并使一个可见,处理15个不同屏幕的控件.

有没有办法拥有15个单独的表单,每个表单都有自己的代码隐藏文件,而不是一个表单上的15个TabItems,然后根据需要创建一个主引擎并将其废弃?当然,它应该看起来好像是一种形式,而不是15种弹出窗口.

我该如何处理?您将如何处理长达数千行的xaml和代码隐藏文件的问题?

c# wpf user-interface code-behind winforms

5
推荐指数
2
解决办法
4709
查看次数

ASMX Web服务 - 返回具有属性的用户定义类

嘿,我试图从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)

asp.net web-services asmx user-defined-types

5
推荐指数
1
解决办法
1万
查看次数