Это странно! Я работаю над приложением, которое читает файлы vCard, которые содержат контактную информацию и т. Д. Для человека. Каждый файл может содержать отдельные «разделы», каждый из которых содержит сведения об одном человеке, разделенные BEGIN: VCARD [данные здесь] END: VCARD.
Чтобы позволить моим пользователям просматривать все различные детали, я позволил моей программе заполнить текстовые поля в моем приложении сведениями, а затем открыть новое окно и сделать это с этим, но для каждого из разделы в файле.
Проблема возникает, когда моя программа открывается при двойном щелчке файла vCard в Проводнике. Он продолжает проходить через vCard. Я не знаю, что делать, но ниже приведен мой проблемный код:
public void readVcard(string fname)//Reads vCard and then loops through sections
{
try
{
using (StreamReader r = new StreamReader(fname))
{
string input = File.ReadAllText(fname);//read through file
String[] vArray = input.Split(new string[] { "BEGIN:VCARD" }, StringSplitOptions.None);
int i;
for (i = 1; i < vArray.Length; i++)
{
MainWindow a = new MainWindow();
a.parser(vArray[i]); //Parser is the function that populates the app
a.Show();
}
return;
}
}...
Эта функция вызывается отсюда:
void MainWindow_Loaded(object sender, RoutedEventArgs e)//Processes a file when opened externally
{
if (Application.Current.Properties["ArbitraryArgName"] != null)
{
string fname = Application.Current.Properties["ArbitraryArgName"].ToString();
readVcard(fname);
}
}
Если бы кто-нибудь мог помочь, это было бы очень признательно.