![](/img/trans.png)
[英]how to pass the data from one user control to another user Control both are placed in default.aspx
[英]How to send data from one User Control to another User Control?
说我有这两个用户控件。 单击ControlOne
的按钮时,如何将在TextBox中输入的数据从ControlOne
到ControlTwo
的TextBox?
<UserControl x:Class="Project.ControlOne"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<StackPanel Orientation="Horizontal">
<TextBox x:Name="MyTextBox" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" />
<Button HorizontalAlignment="Center" VerticalAlignment="Center" Content="Send" Click="Button_Click" />
</StackPanel>
</Grid>
</UserControl>
...
namespace Project
{
public partial class ControlOne : UserControl
{
public ControlOne()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
}
}
}
<UserControl x:Class="Project.ControlTwo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<StackPanel Orientation="Horizontal">
<TextBox x:Name="MyTextBox" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" />
</StackPanel>
</Grid>
</UserControl>
您的两个用户控件应该彼此不了解(除非一个控件包含另一个控件)。 这就是为什么您不能在它们之间“传递数据”的原因。 用户控件的想法是,您可以根据需要将其放置在任意位置多次。 如果ControlOne
知道ControlTwo
,那么如果单独使用它们会怎样? 还是在同一位置放置了三个ControlTwo
?
包含这两者的层应该是从其中一个读取值并将其设置为另一个的层。 如果希望它在按钮按下时发生,则应调查事件处理,以便父级可以知道何时按下控件的按钮。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.