我有一个 WPF 项目,它只是几十个小工具的集合。我将每个工具放在主 tabcontrol 的一个 tabitem 上,并为每个 tabitem 编写了一个部分 MainWinow 类。但是,由于工具之间的关系很小,我宁愿密封每个工具,以免它们相互干扰。此外,我听说偏班是邪恶的。这里的问题是除 MainWindow 之外的一个类很难与 UI 项进行通信(据我所知)。关于我应该去哪里的任何建议?
非常感谢。
应 Blam 的要求,这是我当前代码的简化版本。原始代码太大,此处无法粘贴。
xml:
<Window x:Class="WpfApplication7.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TabControl Margin="0,0,0,0" Name="tabControl1">
<TabItem Header="Tool1" Name="Tool1">
<Grid>
<Label Name="lblTool1"/>
</Grid>
</TabItem>
<TabItem Header="Tool2" Name="Tool2">
<Grid>
<Label Name="lblTool2"/>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>
部分类 1 (MainWindow.xaml.cs):
namespace WpfApplication7
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
string caption = "Tool Collection";
public MainWindow()
{
InitializeComponent();
this.Title = caption;
InitialTool1();
InitialTool2();
}
/*
Some other methods for main window, including those for menu bar, tool bar, ...
*/
}
}
部分类 2 (Tool1.cs):
namespace WpfApplication7
{
string tool1Details = "This is tool 1";
/*
Other parameters related to tool1
*/
public partial class MainWindow : Window
{
public void InitialTool1()
{
lblTool1.Content = tool1Details;
}
/*
Some other methods that communicate with tabitem1
*/
}
}
部分第 3 类(Tool2.cs):
namespace WpfApplication7
{
public partial class MainWindow : Window
{
string tool2Detail = "This is tool 2";
/*
Other parameters related to tool2
*/
public void InitialTool2()
{
lblTool2.Content = tool2Detail;
}
/*
Some other methods that communicate with tabitem2
*/
}
}
将它们拆分为部分类的目的是我们可以将它们放在不同的文件中。