【发布时间】:2011-09-19 21:41:21
【问题描述】:
我有一个包含 4 个选项卡的 WPF 应用程序。 Tab1 是应用程序加载的第一个选项卡。我有一个 Tab1Load 方法(选项卡的名称),如下所示:
private void Tab1Load(object sender, RoutedEventArgs e)
{
myConfig.LoadConfigurationData();
XiphosDB.DataContext = Xiphos.XiphosDbNames;
}
myConfig 在 Window1.xaml.cs 文件的顶部声明
LoadConfigData myConfig = new LoadConfigData();
LoadConfigData 看起来像:
public void LoadConfigurationData()
{
LoadGen2Data();
LoadXiphosData();
LoadTestConsumerData();
}
第一个方法调用 LoadGen2Data 一直运行到最后,它为静态对象设置一个值。电话是:
var count = 0;
foreach (var name in Gen2.allFiNames)
{
Gen2.ApiKeys.Add(name, APIKeys[count]);
Gen2.ConnectStrings.Add(name, connectStrings[count]);
Gen2.LongNames.Add(name, LongNames[count]);
count++;
}
Gen2 声明是:
public class Gen2
{
public static List<string> allFiNames { get; set; }
public static Dictionary<string, string> LongNames { get; set; }
public static Dictionary<string, string> ApiKeys { get; set; }
public static Dictionary<string, string> ConnectStrings { get; set; }
}
在调用 Gen2.ApiKeys.Add 之后,应用程序跳过它所在的方法 (LoadGen2Data) 而不调用其余的 Add 语句,然后退出 LoadConfigurationData 方法而不调用剩余的两个方法 (LoadXiphosData和 LoadTestConsumerData)。
进入 foreach 循环的顶部,我已验证“名称”值已填充,并且 APIKeys[count] 提供了合法值(GUID)。
我没有收到任何错误。没有捕获到其他调试点,我可以毫无问题地在应用程序 GUI 中移动(也没有数据)。
知道问题出在哪里吗?
谢谢,
杰森
【问题讨论】:
-
您没有显示足够的代码 - 什么是设置这些全局变量?请创建一个简短但完整的程序来演示该问题。老实说,我个人会尽量避免使用这样的全局变量...