这是我的自定义控件,具有自定义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 ""!
}
答案 0 :(得分:1)
那是因为您正在更改模板中内部TextBox的Text
属性,而不是CustomTextBox本身的Text
属性。
我建议您查看http://www.geekchamp.com/articles/creating-a-wp7-custom-control-in-7-steps以获取有关创建自定义控件的帮助。