我在twoway模式下绑定了很多文本框以及使用UpdateSourceTrigger = PropertyChanged的不同属性,我有一个恼人的问题:当我输入或删除一个值时 - 插入符号移动到字符串的开头。 我在这里找到了解决方案: TextBox with CurrencyFormat and PropertyChanged trigger doesn't accept text right
但我无法正确实现它。我可能会错过一些东西。
这是我的一个文本框的XAMLbinding:
enter code here <TextBox x:Name="TextBoxFirstPersonCameraMinPosY" Width="150" VerticalAlignment="Center" FontWeight="Normal"
Text="{Binding Path=CameraLimitationParameters.FirstPersonCameraPosition.MinValue.Y, Mode=TwoWay, IsAsync=True, Delay=0, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource ToStringConverter}}" Style="{StaticResource {x:Type TextBox}}"
MaxLength="40" Margin="10,0,0,0" MinWidth="150" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" MaxWidth="150"></TextBox>
这是我的风格:
enter code here<Page.Resources >
<ObjectDataProvider x:Key="CameraMode"
MethodName="GetValues" ObjectType="{x:Type sys:Enum}" >
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="settingsManager:CameraBehavior"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<settingsManager:ToStringConverter x:Key="ToStringConverter"></settingsManager:ToStringConverter>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="Text" Value="{Binding UpdateSourceTrigger=PropertyChanged}"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Page.Resources>
我错过了如何在不重复代码的情况下独立于绑定属性为所有文本框应用此样式? 这个解决方法是否适用于我的案例?请帮帮我。
答案 0 :(得分:0)
问题是因为我在TextBox中设置了IsAsync = True。在这种情况下,需要将Async设置为false。