UpdateSourceTrigger=PropertyChanged を使用してさまざまなプロパティに双方向モードでバインドされた多くのテキスト ボックスがあり、厄介な問題が 1 つあります。値を入力または削除すると、キャレットが文字列の先頭に移動します。私はここで解決策を見つけました: CurrencyFormat と PropertyChanged トリガーを持つ TextBox は、テキストを正しく受け入れません
しかし、正しく実装できません。私はおそらく何かが恋しいです。
テキストボックスの 1 つの 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>
コードを複製せずにバインディング プロパティとは無関係にすべてのテキスト ボックスにこのスタイルを適用する方法を見逃したのは何ですか? そして、この回避策は私のケースで機能しますか? お願い助けて。