[英]How to pass value from one window to another
設置后如何將一個變量的值傳遞到文本框? 在winforms上,我曾經在winforms中使用form1.textbox1.text =變量。
我設置並從中獲取變量...
Public Shared Property containerstring() As String
Get
Return m_containerstring
End Get
Set(value As String)
m_containerstring = value
End Set
End Property
Private Shared m_containerstring As String
基本上,我有一個窗口...用戶在其中選擇一個變量,然后將該變量設置為@ containerstring。 當此表單關閉時,我想將此變量推送到當前打開的窗口的文本框中。
我是WPF的新手,請原諒。
這就是我在窗戶上做的方式,對Windows來說,這是完美的。 我希望通過控件來做同樣的事情。
Dim strWindowToLookFor As String = GetType(MainWindow).Name
Dim win = ( _
From w In Application.Current.Windows _
Where DirectCast(w, Window).GetType.Name = strWindowToLookFor _
Select w _
).FirstOrDefault
If win IsNot Nothing Then
DirectCast(win, MainWindow).Title = SelectedContainer
End If
您可以像這樣關閉窗口事件: this.Closed += MyWindow_Closed;
然后在相應的方法中設置變量。
private void MyWindow_Closed()
{
TextBox1.Text = a;
}
您可以使用Prism.Events中可用的PubSubEvent。 這將允許您訂閱事件。
Using Prism.Events;
定義您的事件。
public class MyEvents : PubSubEvent<object>
{
public MyEvents();
}
在第一個窗口或后面的代碼中
[Import]
public IEventAggregator EventAggregator
{
get;
set;
}
並且您可以在程序中使用此屬性來發送要發送的任何值。
例如
private void MyWindow_Closed()
{
MyEvents myEvents = EventAggregator.GetEvent<MyEvents>();
myEvents.Publish(yourvalue);
}
發布后,您可以像這樣在程序的任何其他部分訂閱同一事件。
MyEvents myEvents = EventAggregator.GetEvent<MyEvents>();
myEvents.Subscribe(MyEventMethod, ThreadOption.UIThread, true);
並在這里獲取您的數據
void MyEventMethod(object obj)
{
// do wharever you want
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.