我有这样的用户控制(例如):
<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>
要访问此控件,我必须使用Name,然后使用Property。 有点像这样。
UC uc = new UC();
uc.LastName.Text = "text";
有没有办法更快地访问它?我的意思是......
uc.LastName =“Text”
答案 0 :(得分:1)
您可以在代码隐藏中声明一个属性来包装LastName.Text
。例如
public string LastNameText
{
get { return LastName.Text; }
set { LastName.Text = value; }
}
<TextBox Name="LastName" x:FieldModifier="private"/>
值得吗?我非常怀疑它。
答案 1 :(得分:0)
不是真的。 LastName是TextBox类型的对象,“Text”是一个字符串。您不能将字符串分配给TextBox。 TextBox.Text也是字符串类型,这就是为什么你可以为它分配“文本”。强类型对象是C#的一个非常标准的原则。
理论上你可以重载“=”运算符,但不建议这样做,因为它会让你的代码难以理解。