2017-04-21 2 views
0

변수를 열면 새 창에 변수 WorkOrderText을 전달하려고합니다. here에 설명 된 방법을 사용했지만 변수 값이 표시되지 않습니다.Visual C#에서 WPF Windows에서 변수 가져 오기 및 설정

변수가 처음 설정된 창은 여기에서 확인할 수 있습니다. public string testingString;

public partThreeWindow() 
    { 
     InitializeComponent(); 
    } 

    private void Button_Click_1(object sender, RoutedEventArgs e) 
    { 
     testingString = new TextRange(descriptionBox.Document.ContentStart, descriptionBox.Document.ContentEnd).Text; 
     partFourWindow partFour = new partFourWindow(); 
     partFour.workOrderText = testingString; 
     partFour.Show(); 
     this.Hide(); 

    } 

변수를 수신하고 여기에서 찾을 수 있습니다 표시 triyng되는 창 :

public string workOrderText { get; set; } 

    public partFourWindow() 
    { 
     InitializeComponent(); 
     this.WindowStartupLocation = WindowStartupLocation.CenterScreen; 
     this.ResizeMode = ResizeMode.NoResize; 
    } 

    private void partFourWindow_Shown(object sender, EventArgs e) 
    { 

     testing.Text = this.workOrderText; 

    } 

을하지만 텍스트 상자가 비어 표시됩니다. 내가 잘못 했니?

+0

예, 잘못하고 있습니다. WPF의 변경 사항은 뷰 모델, 모델, 다른 뷰 모델로 돌아가서 INPC가 뷰를 업데이트하도록해야합니다. 장기적으로 볼 때 소리는 많이 들리지만 길은 좋아집니다. MVVM 연구. – BradleyDotNET

+0

@BradleyDotNET MVVM을 살펴보십시오. WPF 및 Visual C#에 익숙하지 않으므로 머리를 감싸 야합니다. – tmello01

답변

1

Shown 이벤트는 WinForms Form.Shown Event에서만 사용할 수 있습니다.

어디서나 partFourWindow_Shown이라고합니까? 예제 코드에서 호출되지 않았습니다. 업데이트 할 텍스트를 얻으려면 창의 Loaded 이벤트에 연결할 수 있습니다.

public partFourWindow() 
{ 
    InitializeComponent(); 
    this.WindowStartupLocation = WindowStartupLocation.CenterScreen; 
    this.ResizeMode = ResizeMode.NoResize; 
    this.Loaded += OnLoaded; 
} 

private void OnLoaded(object sender, RoutedEventArgs routedEventArgs) 
{ 
    testing.Text = this.workOrderText; 
} 
+0

이것은 효과가 있습니다! onLoad에 내장 된 함수를 찾을 수 없습니다. 도와 주셔서 감사합니다! – tmello01