(WPF) 視窗間傳參數

來源:互聯網
上載者:User

https://www.cnblogs.com/fdyang/archive/2013/03/25/2980451.html

有如下幾種方式:

1. 聲明個全域變數,就是App.xaml裡面聲明;在所有表單裡面都可以引用 Application.Current.Properties["ArgumentName"];

2. 第二個就是 在目標表單上面公開個 屬性,直接賦值;

3. 最後就是在Uri裡面傳參數 NavigationService.Navigate(window object,argument value)

4. 採用事件響應,傳遞值。 

 

舉例:點擊主視窗MainWindow 上的一個OpenSubWindow按鈕 -> 開啟子視窗SubWindow -> 在子視窗中的TextBox中輸入值, 點擊OK後關閉 -> 主視窗上的TextBox擷取子視窗中的值。

1. 在子視窗中定義一個事件PassValuesEvent。 當點擊 OK 按鈕時,觸發事件,並傳遞數值。( PassValuesEventArgs 是EventArgs類,需要同時定義好) 

    public partial class SubWindow : Window    {        public delegate void PassValuesHandler(object sender, PassValuesEventArgs e);        public event PassValuesHandler PassValuesEvent;         public SubWindow()        {            InitializeComponent();        }        private void btnOK_Click(object sender, RoutedEventArgs e)        {            string value1 = tbValue1.Text;   // Text Property return value is string type .            int value2;            Int32.TryParse(tbValue2.Text, out value2);            PassValuesEventArgs args = new PassValuesEventArgs(value1, value2);            PassValuesEvent(this, args);            this.Close();        }    }

2.  在主視窗中的OpenSubWindow按鈕點擊的方法中,訂閱了PassValuesEvent事件。當事件觸發時,擷取傳遞的參數的值。

    public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();        }        private void btnOpenSubWindow_Click(object sender, RoutedEventArgs e)        {            SubWindow subWindow = new SubWindow();             // 訂閱事件            subWindow.PassValuesEvent += new SubWindow.PassValuesHandler(ReceiveValues);            subWindow.Show();         }        private void ReceiveValues(object sender, PassValuesEventArgs e)        {            this.tbValue1.Text = e.Value1;            this.tbValue2.Text = e.Value2.ToString();         }    }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.