1

これら 2 つのユーザー コントロールがあるとします。ボタンがクリックされたときにControlOne、TextBox に入力されたデータを TextBox に渡すにはどうすればよいですか?ControlTwoControlOne

<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>
4

1 に答える 1

1

2 つのユーザー コントロールは、互いを認識してはなりません (一方に他方が含まれている場合を除く)。そのため、それらの間で「データを渡す」ことはできません。ユーザー コントロールの背後にある考え方は、必要に応じて何度でもどこにでもドロップできるということです。ControlOneについて知っていたらControlTwo、それらを別々に使用するとどうなりますか? またはControlTwo、同じ場所に 3 つの s がありましたか?

それらの両方を含むレイヤーは、一方から値を読み取り、それを他方に設定するレイヤーでなければなりません。ボタンを押したときに発生させたい場合は、コントロールのボタンが押されたときに親が知ることができるように、イベント処理を調べる必要があります。

于 2013-04-03T21:15:27.453 に答える