快速访问用户控件的元素

本文关键字:元素 控件 用户 访问 | 更新日期: 2023-09-27 18:27:01

我有这样的用户控制(例如):

<UserControl
x:Class="Tester.UC"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Tester"
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>
    <TextBlock Name="Name" HorizontalAlignment="Left" Margin="10,10,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Height="79" Width="380" FontSize="50" TextAlignment="Center"/>
    <Button Content="Button" HorizontalAlignment="Left" Margin="152,179,0,0" VerticalAlignment="Top"/>
    <TextBox Name="LastName" HorizontalAlignment="Left" Margin="0,109,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="390" Height="65" TextAlignment="Center" FontSize="40"/>
</Grid>

要访问此控件,我必须使用"名称",然后使用"属性"。像这样的东西。

UC uc = new UC();
uc.LastName.Text = "text";

有什么方法可以更快地访问它吗?我的意思是。。。

uc.LastName="Text"

快速访问用户控件的元素

您可以在代码后面声明一个属性来包装LastName.Text。例如

public string LastNameText
{
    get { return LastName.Text; }
    set { LastName.Text = value; }
}
<TextBox Name="LastName" x:FieldModifier="private"/>

值得吗?我非常怀疑。

不是。LastName是一个TextBox类型的对象,"Text"是一个字符串。不能将字符串分配给TextBox。文本也是字符串类型,这就是为什么你可以给它分配"文本"。强类型对象是C#的一个非常标准的原则。

理论上,您可以重载"="运算符,但不建议这样做,因为这会使其他人难以理解您的代码。