【发布时间】:2014-01-22 13:44:30
【问题描述】:
我有一个弹出窗口,它只是一个用户控件,基本上只是一个表单,上面有一个“完成”按钮。我找不到将数据从表单发送到页面的方法,以便我可以解析和使用数据来创建特定元素。基本上,当单击“完成”按钮时,我找不到发送甚至访问页面以存储数据的方法。
绑定似乎也不是要走的路,因为当单击“完成”按钮时,页面会创建另一个用户控件,其中填充了从弹出窗口中的表单接收到的数据。由于绑定似乎不适合我的问题,接下来是传递数据,但由于我找不到引用页面的方法,我也无法使用此解决方案。
页面就是这样的:
<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 个输入数字相乘的结果,并且弹出窗口关闭。我遇到的问题是按下弹出窗口上的按钮后更新页面上的文本框。我找不到指向或引用文本框的方法。
【问题讨论】:
-
这个问题太抽象了,无法回答。请发布您的代码的相关部分。
-
抱歉,我添加了一个示例代码并总结了正在发生的事情以及我正在尝试完成的事情。我会添加实际代码,但我被告知我不允许这样做,所以这是我能逃脱的最好的。
-
没有问题,感谢您的更新。不过,还有一个问题——您实际上是如何显示弹出窗口的?大概在代码隐藏的某个地方?
-
是的,即使是页面上的按钮,它也只是在点击中,它就在打开
标记的正上方...我应该命名按钮和弹出窗口,但代码是这:如果(!MyPopUp->IsOpen){ MyPopUp->IsOpen = true; }
标签: wpf xaml visual-c++ user-controls