1

У меня есть пользовательский элемент управление, как это (например):Быстрый доступ к элементам управления пользовательского

<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 = "Текст"

ответ

1

Вы можете объявить объект в коде для обертывания LastName.Text. Например

public string LastNameText 
{ 
    get { return LastName.Text; } 
    set { LastName.Text = value; } 
} 

<TextBox Name="LastName" x:FieldModifier="private"/> 

Стоит ли это? Я серьезно сомневаюсь в этом.

+0

Uhm ... Я думаю, что это стоит того, когда я должен использовать этот контроль несколько раз и упростить все. Спасибо за ответ, это работает :) Специальность, когда именование каждого элемента управления не имеет смысла (многие другие элементы управления в моем пользовательском контроле) – MajQel

0

не очень. LastName - это объект типа TextBox, а «Текст» - строка. Вы не можете назначить строку TextBox. TextBox.Text также имеет строку типа, поэтому вы можете назначить ему «Текст». Сильно типизированный объект является довольно стандартным принципом C#.

Теоретически вы можете перегрузить оператор «=», но это не рекомендуется, так как это затруднит понимание вашего кода.

Смежные вопросы