Из родительского окна мне нужно открыть файл и заполнить различные таблицы и элементы управления (принадлежащие родительскому окну), используя его содержимое.Имя файла (строка) формируется в дочернем окне с помощью DataGrid.SelectedItem
private void LoadResultsCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
var row = pastTestResultsDataGrid.SelectedItem as DataRowView;
if (row != null)
{
string fileName = row[0] + " " + row[1] + " " + row[2] + " " + row[3] + " " + row[4] + " " +
((DateTime)row[6]).ToShortDateString().Replace('/', '-') + " " + ((DateTime)row[7]).ToShortDateString().Replace('/', '-') + " .dat";
MainWindow.LoadResults(fileName);
}
}
Как вы видите в Parent (MainWindow), мне пришлось использовать статический метод
public static void LoadResults(string fileName)
{
string fullFileName = @"C:\Users\Public\Documents\Test Data\" + fileName;
var binFormat = new BinaryFormatter();
var testData = new TestData();
if (File.Exists(fullFileName))
{
using (Stream fStream = new FileStream(fullFileName, FileMode.Open))
{
testData = (TestData) binFormat.Deserialize(fStream);
}
}
//here I am trying to load data from testData instance of TestData class into data
//tables or set Text property of a TextBox. Can't access them from a static method!
}
Iзнаю, что я даже не должен пытаться получить доступ к нестатическим членам из статического метода.Я просто пытаюсь объяснить свою задачу.Есть ли способ в WPF (где класс Window определен в XAML), чтобы получить доступ к экземпляру Parent окна во время выполнения и чем его методы?Я не против изменить тотальный подход, если есть более элегантное и простое решение.