添加结尾
最后一步是将控件添加到窗体区域,然后将自定义 Outlook 替换窗体区域中的代码连接到 SalesSearch 控件和 WPF 图表控件。要将 SalesSearch 控件和 WPF 控件添加到窗体区域中,请在项目中构建所有组件,此操作将控件添加到工具箱中,以便可以将它们拖到设计图面中。将 SalesSearch 控件和 WPF 图表控件拖到窗体区域的设计图面中所需的位置。控件就位后,现在可以创建代码,将这些控件与窗体区域相连接并彼此连接。
首先,我在 RecentSales 类中已经添加了一些代表销售(年份和销售额)和公司数据的重要变量声明:
partial class RecentSales
{
string[] currentXData;
double[] currentYData;
string currentCompany;
...
}
{
string[] currentXData;
double[] currentYData;
string currentCompany;
...
}
其次,在 RecentSales_FormRegionShowing 方法(在 Outlook 加载自定义窗体区域时主要调用所添加的任何代码)中,已经将 WPF 销售图表的可见性设置为在 Outlook 加载窗体区域时默认隐藏:
private void RecentSales_FormRegionShowing(object sender,
System.EventArgs e)
{
salesChart1.Visibility = System.Windows.Visibility.Hidden;
}
System.EventArgs e)
{
salesChart1.Visibility = System.Windows.Visibility.Hidden;
}
随后,UpdateChart 方法(在以上提到的方法)使用销售和公司数据调用 UpdateWPFChart 方法并更新销售图表(指示销售额的 WPF 形式条形图)中出现的数据。请注意,我们还构建了一个事件处理程序,响应复选框中的单击事件并调用 UpdateChart 方法。图 12 显示了 UpdateChart 方法和复选框的 CheckChanged 事件的代码。
private void UpdateChart()
{
if (showChart.Checked)
{
if ((currentXData != null) && (currentYData != null))
{
salesChart1.UpdateWPFChart(
currentCompany, currentXData, currentYData);
salesChart1.Visibility = System.Windows.Visibility.Visible;
}
else
{
salesChart1.Visibility = System.Windows.Visibility.Hidden;
}
}
else
{
salesChart1.Visibility = System.Windows.Visibility.Hidden;
}
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
UpdateChart();
}
{
if (showChart.Checked)
{
if ((currentXData != null) && (currentYData != null))
{
salesChart1.UpdateWPFChart(
currentCompany, currentXData, currentYData);
salesChart1.Visibility = System.Windows.Visibility.Visible;
}
else
{
salesChart1.Visibility = System.Windows.Visibility.Hidden;
}
}
else
{
salesChart1.Visibility = System.Windows.Visibility.Hidden;
}
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
UpdateChart();
}
最后,采用一个方法来处理 SalesSearch 控件上的数据更改事件。此方法更新销售和公司数据,然后调用 UpdateChart:
private void salesSearch1_SalesDataChangeEvent(object sender,
SalesControlLibrary.SalesSearchEventArgs e)
{
currentCompany = e.CompanyName;
currentXData = e.XValues;
currentYData = e.YValues;
UpdateChart();
}
SalesControlLibrary.SalesSearchEventArgs e)
{
currentCompany = e.CompanyName;
currentXData = e.XValues;
currentYData = e.YValues;
UpdateChart();
}