WPF UserControl和TextBox,使用TextChanged事件C#

问题描述

|| 我有一个标有control0ѭ的客户用户控件(
Border
包裹着
Label
TextBox
,而
TextBox
标签重叠)。我在从UserControl调用时如何获得working5ѭ函数正常工作的例子很少。 只是文本框摘要
<TextBox 
FontSize=\"{Binding Path=DefaultFontSize}\"
Style=\"{StaticResource WatermarkTextBox}\"
Padding=\"{Binding Path=TextPadding}\"
Tag=\"{Binding Path=TextValue}\"
/>
我曾尝试像使用按钮的Click事件一样使用
RoutedEventHandler
,但是没有用。假设我在窗口上使用它是必需的,那么我如何获得它:
<MyControl:LabeledTextBox
    TextBoxChange=\"Some_Event\"
    TextValue=\"{Binding SomethingOrOther}\"
 />
它将正确启动并执行所需的功能     

解决方法

        这个问题真的不清楚。您是否希望您的用户控件支持在
TextBox
中的文本更改时引发的
TextChanged
事件?如果是这样,则需要在后面的代码中实现它。 首先,声明事件:
public event TextChangedEventHandler TextChanged;
然后,将事件处理程序添加到“ 0”:
<TextBox TextChanged=\"TextBox_TextChanged\" ... />
并在后面的代码中:
private void TextBox_TextChanged(object sender,TextChangedEventArgs args)
{
   TextChangedEventHandler h = TextChanged;
   if (h != null)
   {
      h(this,args);
   }
}
    ,        如果您使用的是MVVM(或者如果您的
TextValue
绑定绑定到可以访问和编辑的对象),则可以将要执行的逻辑放入设置器中。 因此,可以说您绑定到属性
MyTextBoxValue
。在XAML中将绑定模式设置为两种方式,然后在setter中将逻辑或调用另一个方法。 如果希望每次键入时都触发代码,请在XAML中设置ѭ17,如果仅在文本输入为“完成”时才触发代码,则设置ѭ18。