Вот мой настраиваемый элемент управления с настраиваемым стилем xaml:
using System.Windows.Controls;
namespace MyControls
{
public class CustomTextBox : TextBox
{
}
}
<Style TargetType="controls:CustomTextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:CustomTextBox">
<StackPanel>
<TextBlock Text="" />
<TextBox Text="{TemplateBinding Text}" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
И при использовании обработчик TextChanged
по какой-то причине не получает обновленное поле Text
.
<controls:CustomTextBox x:Name="ControlInstance"
TextChanged="OnTextChanged"
InputScope="EmailNameOrAddress" />
private void OnTextChanged(object sender, TextChangedEventArgs e)
{
// ControlInstance.Text is always ""!
}
1 ответ
Это потому, что вы изменяете свойство Text
внутреннего TextBox в своем шаблоне, но не свойство Text
самого CustomTextBox.
Я рекомендую вам проверить http: // www. geekchamp.com/articles/creating-a-wp7-custom-control-in-7-steps, чтобы получить помощь в создании настраиваемого элемента управления.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.
Text
отTextBox
.