如何在不重新加载窗口的情况下将值从一个窗口传递到另一个窗口
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;
}
答案 0 :(得分: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;
并创建新的值捕获方法
private void Obj_GetDataFromChild(bool IsVisible)
{
if (IsVisible)
LoadingGrid.Visibility = Visibility.Visible;
else
LoadingGrid.Visibility = Visibility.Collapsed;
}