我有一个Popup,它只是一个UserControl,它基本上只是一个填写“完成”按钮的表单。我找不到将数据从表单发送到页面的方法,以便我可以解析并使用数据来创建特定元素。基本上,当点击“完成”按钮时,我找不到发送甚至访问页面来存储数据的方法。
绑定似乎不是一种方式,因为当单击“完成”按钮时,页面会创建另一个UserControl,其中填充了从弹出窗体中的表单接收的数据。由于绑定似乎不适合我的问题,传递数据将是下一个,但由于我找不到引用页面的方法,我无法使这个解决方案工作。
Page就是这样:
<Button HorizontalAlignment="Left" Margin="227,115,0,0" VerticalAlignment="Top">
<Popup IsLightDismissEnabled="True">
<local:PopupMenu/>
</Popup>
</Button>
<TextBox HorizontalAlignment="Left" Margin="230,340,0,0" TextWrapping="Wrap" Text="0" VerticalAlignment="Top" Height="55" Width="455"/>
UserControl基本上是:
<UserControl
x:Class="SimpleShop.PopupMenu"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:SimpleShop"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" Height="800" Width="1295">
<TextBlock text="Enter A Number" Fontsize="24" TextWrapping="Wrap" Height="40" Width="200" />
<TextBox x:Name="Number1" Text="0" TextWrapping="Wrap" Height="40" Width="200" />
<TextBlock text="Enter A Number" Fontsize="24" TextWrapping="Wrap" Height="40" Width="200" />
<TextBox x:Name="Number2" Text="0" TextWrapping="Wrap" Height="40" Width="200" />
<Button x:Name="AddItemButton" Content="Button" FontSize="24" Height="40" Width="110" Click="AddItemButton_Click" />
</UserControl>
所以当按下页面上的按钮时会出现弹出窗口,输入2个数字并按下弹出窗口上的按钮后,页面上的文本框将被更新,并且输入的2个数字的结果将被乘以弹出窗口已关闭。我遇到的问题是按下弹出窗口上的按钮后更新页面上的文本框。我找不到指向或引用文本框的方法。
答案 0 :(得分:0)
所以你需要两个部分:
首先,考虑使用Closed
事件,即:
<Popup IsLightDismissEnabled="True" Closed="Popup_Closed">
<local:PopupMenu x:Name="popupUserControl"/>
</Popup>
对于第二个,我只是在PopupMenu
上公开了一个给你结果的属性。像这样:
public partial class PopupMenu : UserControl
{
public double Result { get; private set; }
public AddItemButton_Click(object sender, EventArgs e)
{
Result = double.Parse(Number1.Value) + double.Parse(Number2.Value);
}
}
然后,您可以根据需要在Closed
事件处理程序中设置文本:
private void Popup_Closed(object sender, EventArgs e)
{
txtResult.Text = popupUserControl.Result.ToString();
}