将值从一个窗体传递到另一个窗体而不重新加载

本文关键字:窗体 另一个 加载 新加载 一个 | 更新日期: 2023-09-27 17:58:33

如何在不重新加载窗口的情况下将值从一个窗口传递到另一个窗口

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;
}

将值从一个窗体传递到另一个窗体而不重新加载

请使用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;
    }