如何在uwp中检索文本框字符串形式的主页?

时间:2017-06-22 10:52:39

标签: c# uwp

我是UWP的新手。

我创建了一个带有MainPage和UserControl的应用程序。

我在UserControl中有一个TextBox,我想从我的主页访问它的数据。

有人可以建议一种方法吗?

由于

2 个答案:

答案 0 :(得分:1)

在用户控件的构造函数中,初始化UserControl类的静态全局实例

public UserControl()
{
    //Initialise control
}

public static UserControl UserControlInstance
{
    get
    {
        return m_UserControlInstance ?? new UserControl();
    }
}

private static UserControl m_UserControlInstance;

然后只需通过实例

访问UserControl的属性
string x = UserControl.UserControlInstance.TextBox.Text;

顺便说一下,这个叫做singelton,如果你想查找它的话!

答案 1 :(得分:1)

虽然@Peter有一个很好的答案,但我认为你也可以使用FieldModifier

我的UserControl是Averieli,我的xaml是:

<UserControl
    x:Class="Avalonia.Averieli"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Avalonia"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300"
    d:DesignWidth="400">

    <Grid>
       <TextBox x:Name="TextBox" x:FieldModifier="public"></TextBox>
    </Grid>
</UserControl>

您可以看到我在TextBox中添加了x:FieldModifier="public",可以在MainPage中使用它。

我在MainPage中使用UserControl。

    <local:Averieli x:Name="Averieli"></local:Averieli>

我也可以在后面的代码中使用TextBox。

    public MainPage()
    {
        InitializeComponent();
        Averieli.TextBox.Text = "I can use it";
    }