編程新手,經過7天的搜索後,我找不到解決方案。 我的「MainPage」打開,我點擊打開一個「SecondaryPage」,它在帶有核心Dispatcher的新線程窗口上打開。我的「MainPage」有一個更新「TextBlock1」的按鈕Click事件。我無法實現的是將此值傳遞給我的「第二頁」「TextBlock2」。UWP C#將變量傳遞給另一個線程
MainPage.xaml在下面。
<StackPanel>
<Button Click="Button_Click_NewWindow" Content="Start a new window" FontSize="30"/>
<TextBlock Name="Textblock1" Text="Empty" FontSize="30"/>
<Button Click="Button_Click_Add" Content="+1" FontSize="30"/>
</StackPanel>
代碼SecondPage.xaml背後
<StackPanel>
<TextBlock Name="Textblock2" Text="Empty" FontSize="30"/>
</StackPanel>
MainPage.xaml.cs中
namespace MulitViewV1
{
public sealed partial class MainPage : Page
{
public int T1G = 0;
public MainPage()
{
this.InitializeComponent();
}
private async void Button_Click_NewWindow(object sender, RoutedEventArgs e)
{
CoreApplicationView newView = CoreApplication.CreateNewView();
int newViewId = 0;
await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() =>
{
Frame frame = new Frame();
frame.Navigate(typeof(SecondPage), null);
Window.Current.Content = frame;
// You have to activate the window in order to show it later.
Window.Current.Activate();
newViewId = ApplicationView.GetForCurrentView().Id;
});
bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
}
private async void Button_Click_Add(object sender, RoutedEventArgs e)
{
T1G = T1G + 1;
Textblock1.Text = T1G.ToString();
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,() =>
{
//UI code here
// NOT WORKING error "TextBlock2" does not exist in the current context
Textblock2.Text = T1G.ToString();
});
}
}
}
我看到調度員正在我查看的MainPage,但我不能想出代碼直接它到我的第二頁「newViewID」。
感謝您的支持與我,我到了那裏。在我的Button_Click_NewWindow,它打開第二個窗口。代碼::frame.Navigate(typeof(SecondPage),T1G);並傳遞變量。然後我的Button_Click_Add,我如何將新的更新變量傳遞給第二個打開的窗口? – Static
@Static查看我的更新回答 – AVK
我無法感謝你,我一直想堅持一個星期試圖弄清楚這一點。 – Static