부모 창에서 파일을 열고 내용을 사용하여 다른 테이블과 컨트롤 (부모 창에 속함)을 채워야합니다. 당신이 부모 (MainWindow를)에서 보는 것처럼 파일 (문자열)의 이름은 내가 정적 인 방법을 사용했다 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);
}
}
에 의해 자식 창에 형성된다
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!
}
나는 shouldn 것을 알고있다 심지어 정적 메서드에서 비 정적 멤버에 액세스하려고 시도하지 않습니다. 나는 단지 나의 일을 설명하려고 노력하고있다. WPF (클래스 Window가 XAML에 정의 된)에서 런타임에 부모 윈도우의 인스턴스에 액세스하는 방법이 있습니까? 좀 더 우아하고 단순한 솔루션이 있다면 전체 접근 방식을 바꿀 수 있습니다.