我有一个文本框绑定到窗口上的double属性,UpdateSourceTrigger
设置为PropertyChanged
。当文本框的内容不是有效数字时,键入文本会明显变慢。在Visual Studio外部直接运行可执行文件时速度要快一些。奇怪的是,即使他们有类似的规格,我的办公室机器似乎要快得多。
是否导致响应缓慢的转换异常(我可以在输出窗口中看到)我知道异常会减慢程序的速度,但肯定不会那么多。我希望绑定代码捕获异常非常接近它抛出的位置,因此堆栈不需要解开太多级别。我应该以某种方式防止异常发生? 如果是这样,我可以考虑几种方法来做到这一点。
有更好的方法吗?
这是一个显示我正在使用的绑定的最小样本。
<Window x:Class="WpfApp5.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp5"
mc:Ignorable="d"
x:Name="_window" Title="MainWindow" Height="176.351" Width="404.73">
<Grid Margin="0,0,0,0">
<TextBox HorizontalAlignment="Left" Height="22" Margin="10,10,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="73"
Text="{Binding Quantity, ElementName=_window, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, StringFormat='{}{0:#,0}'}"/>
</Grid>
</Window>
public partial class MainWindow : Window
{
public double Quantity { get; set; }
public MainWindow()
{
InitializeComponent();
}
}
答案 0 :(得分:1)
这样的事可能适合你。
null