Итак, я разрабатываю приложение, и для открытия некоторых элементов требуется окно свойств. Я следил за этим руководством о том, как использовать AppWindow
.
То, что я не могу понять, так это как передать sh информацию между главным окном и свойствами окно. Так же, как и при его первом открытии, мне нужно предоставить ему все сохраненные свойства для отображения, но окно свойств должно содержать sh любые изменения в главном окне для сохранения и использования.
I имеют очень примитивный код, но я думаю, что он демонстрирует то, что я делаю.
MainPage.xaml.cs:
public sealed partial class MainPage : Page
{
...
public async Task OpenPropertiesWindow()
{
//https://docs.microsoft.com/en-us/windows/uwp/design/layout/app-window
AppWindow properties_appwindow = await AppWindow.TryCreateAsync();
Frame appWindowContentFrame = new Frame();
appWindowContentFrame.Navigate(typeof(PropertiesWindow));
ElementCompositionPreview.SetAppWindowContent(properties_appwindow, appWindowContentFrame);
properties_appwindow.RequestSize(new Size(300, 400));
properties_appwindow.Title = "Properties";
//send data to the textbox in PropertiesWindow
properties_appwindow.Closed += delegate
{
appWindowContentFrame.Content = null;
properties_appwindow = null;
};
await properties_appwindow.TryShowAsync();
}
PropertiesWindow.xaml:
<Page
<Grid>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBox x:Name="txtbox_property1" PlaceholderText="property1"/>
<Button x:Name="btn_apply" Content="Apply" Tapped="ApplyPropertiesButton_Tapped"/>
</StackPanel>
</Grid>
</Page>
PropertiesWindow.xaml.cs
public sealed partial class PropertiesWindow : Page
{
public PropertiesWindow()
{
this.InitializeComponent();
}
private void ApplyPropertiesButton_Tapped(object sender, TappedRoutedEventArgs e)
{
string data_from_txtbox = txtbox_property1.Text;
//push this data_from_txtbox to MainPage
}
}
Кто-нибудь может мне помочь? Мне также нужно будет запускать другой метод обновления на MainPage
при изменении свойства, поэтому мне нужен какой-то триггер, когда данные будут отправлены обратно.