我是UWP的新手。
我创建了一个带有MainPage和UserControl的应用程序。
我在UserControl中有一个TextBox,我想从我的主页访问它的数据。
有人可以建议一种方法吗?
由于
答案 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";
}