WPF中TextBox的TextChanged事件未触发,如何触发该事件?
解决TextBox TextChanged事件未触发的问题
你的问题根源是XAML中的TextBox没有绑定TextChanged事件处理方法,所以输入内容时不会调用后台的SplitSizeMB_TextChanged方法。
修复步骤
- 在XAML的TextBox标签中添加
TextChanged属性,指定绑定到后台的SplitSizeMB_TextChanged方法:
修改后的TextBox代码:
<TextBox Width="120" Height="30" Text="{Binding SplitSizeMB, UpdateSourceTrigger=PropertyChanged}" FontSize="18" Margin="5,0" TextChanged="SplitSizeMB_TextChanged"/>
完成修改后,在TextBox中输入内容时,TextChanged事件就会触发,断点也能正常命中。
额外建议(MVVM模式下的优化)
如果你采用MVVM架构,更推荐直接在ViewModel的SplitSizeMB属性的setter中处理逻辑,无需依赖后台事件:
private int _splitSizeMB; public int SplitSizeMB { get => _splitSizeMB; set { _splitSizeMB = value; OnPropertyChanged(nameof(SplitSizeMB)); // 在这里处理原事件方法中的逻辑,比如计算文件数量 if (FileSizeBytes > 0) { NumberOfFiles = CalculateNumberOfFiles(); } } }
内容的提问来源于stack exchange,提问作者Sharper
相关产品推荐
相关产品推荐

