【发布时间】:2021-09-17 16:54:22
【问题描述】:
我有一个自定义的 WPF 文本框用户控件。我正在写一些内容,但它总是检测到在 XAML 上预设的相同数据,通过执行 textbox.Text get call 不会显示新的书面文本。
public partial class SearchBox : UserControl
{
public SearchBox()
{
InitializeComponent();
this.DataContext = this;
}
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
if (sender is TextBox textBox && textBox.Tag.ToString() == textBox.Text)
textBox.Clear();
}
private void TextBox_LostFocus(object sender, RoutedEventArgs e)
{
if (sender is TextBox textBox && string.IsNullOrEmpty(textBox.Text))
textBox.Text = textBox.Tag.ToString();
}
public string Text { get; set; }
public event TextChangedEventHandler TextChanged;
private void TextBox_TextChanged(object sender, TextChangedEventArgs args)
{
TextChangedEventHandler h = TextChanged;
if (h != null)
{
h(this, args);
}
}
}
它需要如何工作:
<v:SearchBox x:Name="searchBox" TextChanged="searchBox_TextChanged" Text="Input a keyword to filter..." Tag="Input a keyword to filter..." HorizontalAlignment="Left"/>
用户在文本框“test”上写入 --> textbox.Text 返回“输入关键字过滤...”
感谢您的帮助!
【问题讨论】:
-
你的
searchBox_TextChanged函数是什么?
标签: c# textbox textchanged