如何防止更新焦点TextBox

时间:2015-10-12 15:13:19

标签: c# wpf xaml ivalueconverter updatesourcetrigger

我正在开发一个简单的WPF货币转换器程序,该程序必须将美元兑换成欧元,反之亦然。我正在使用IValueConverter在单个Property上拖动TextBoxes。这是有效的,但每当我更改一个文本框时,它将转换另一个文本框,然后将该值转换回原始文本框。如何防止更新当前使用/聚焦的TextBox的源?

MainWindow.xaml

<TextBox Name="tbDollar" Grid.Row="0" Grid.Column="1" Width="200" Height="20" Text="{Binding Price, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource converterToDollar}}"></TextBox>
<TextBox Name="tbEuro" Grid.Row="1" Grid.Column="1" Width="200" Height="20" Text="{Binding Price, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource converterToEuro}}"></TextBox>

EuroToDollarConverter.cs

public object Convert(object value,Type targetType,object parameter,System.Globalization.CultureInfo culture) {
    double price;
    if(value!=null && Double.TryParse((string)value, out price)) return price*1.137;
    return null;
}

视觉示例:

currency converter issue

我尝试过寻找涉及System.Windows.Input.FocusManager的解决方案,但是我并没有完全理解如何在convert方法中获取contol对象。

0 个答案:

没有答案