在我的项目中,我有几个文本框,其方法绑定到TextChanged事件:
<TextBox Grid.Column="12" Style="{StaticResource txtDataStyle1}" Width="100" TextChanged="Data_TextChanged">
<Binding Path="ConfigObject.Edit.Default" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<local:GenericValidationRule>
<local:GenericValidationRule.Wrapper>
<local:Wrapper TipoInterno="{Binding Path=Content, Source={x:Reference txtTipo}}"/>
</local:GenericValidationRule.Wrapper>
</local:GenericValidationRule>
</Binding.ValidationRules>
</Binding>
</TextBox>
当页面加载并且使用“ ConfigObject.Edit.Default”对文本框进行赋值时,将触发Data_TextChanged事件。怎么可以省略呢? 我只会在更改其值时才“使用”该方法。有帮助吗?
答案 0 :(得分:2)
您应该在source属性的setter中实现逻辑,而不是在视图中处理TextChanged
事件。
如果由于某种原因而不能执行此操作,则可以在尚未加载TextBox
的情况下从事件处理程序中返回:
private void Data_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox textBox = (TextBox)sender;
if (textBox.IsLoaded)
{
//your code...
}
}