2016-07-26 53 views
-2

如何傳遞值從一個窗口到另一個窗口進行重新加載窗口傳遞值從一種形式到另一種無需重新加載

private void btn1_Click(object sender, RoutedEventArgs e) 
{ 
    DateTime date = Convert.ToDateTime(lbl_date1.Content); 

    Vazhipadu_receipt obj = new Vazhipadu_receipt(date); 
    obj.ShowDialog(); 
    //this.Close(); 

} 

public Vazhipadu_receipt(DateTime date) 
{ 
    //DateTime date_v = date; 
    //string day = date_v.ToString("dd"); 

    //txt_mnth_v.Text = date.ToString("MM"); 
    //txt_year_v.Text = date.ToString("yyyy"); 
    InitializeComponent(); 
    //window_load(); 
    load(); 
    txt_day_v.Text = date.ToString("dd"); 
    txt_mnth_v.Text = date.ToString("MM"); 
    txt_year_v.Text = date.ToString("yyyy"); 
    // this.sessionNow = sessionNow; 
} 
+2

很高興看到我的母語中的一些函數名稱。請讓你的問題更清楚,以便我們能夠理解它。 – ViVi

+1

使用正確的數據綁定。這是WPF比傳統Windows窗體的優勢。數據綁定允許您在屬性值更改後立即更新UI而無需重新加載。 Google提供相關教程。 –

+0

@kalidas你試過了什麼? – AnjumSKhan

回答

0

請使用MVVM模式它不需要重新加載控件 ,如果你想要在加載新窗口後將數據從一個頁面傳遞到另一個需要使用的委託,事件,操作相同有很多選項可用於WPF/C#

我正在考慮你有一個主頁和從那裏你試圖打開新窗口(Vazhipadu_receipt)

在這種情況下,你需要按照以下步驟 首先創建委託和事件像下面,當你需要傳似值

public delegate void ChildControlDelegate(bool IsVisible);//Delegate with Parameter which value you need to pass 


public event ChildControlDelegate GetDataFromChild;//Event to execute 

然後擡起事件下面

if (GetDataFromChild != null) 
     { 
      GetDataFromChild(true); 
     } 

然後在另一頁面您需要註冊如下事件

usrcntrleStatement obj = new usrcntrleStatement(pnsnLoginmodel); 
obj.GetDataFromChild += Obj_GetDataFromChild; 

並創建新的Meth od價值捕捉

private void Obj_GetDataFromChild(bool IsVisible) 
    { 
     if (IsVisible) 
      LoadingGrid.Visibility = Visibility.Visible; 
     else 
      LoadingGrid.Visibility = Visibility.Collapsed; 
    } 
相關問題