起動時に双方向バインディングが有効になっているスライダーがあります。しかし、それらを動かすと、動きがスムーズではありません。そのため、Thumbs.DragStarted イベントが呼び出された後にバインディング モードを twoway から onewaytosource に変更することにしましたが、これにより値が 1 から 0 にすぐに変更されます。
私の質問は次のとおりです。新しいバインディング中にスライダーが値を変更しないようにするにはどうすればよいですか?
私のコードビハインドは以下です。
private void SliderCameraZ_OnDragStarted(object sender, DragStartedEventArgs e)
{
try
{
BindingExpression bindingExpression = ((Slider) sender).GetBindingExpression(Slider.ValueProperty);
BindingOperations.ClearBinding((Slider) sender, Slider.ValueProperty);
Binding binding = new Binding();
binding.Path = bindingExpression.ParentBinding.Path;
binding.Mode = BindingMode.OneWayToSource;
binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
((Slider)sender).SetBinding(Slider.ValueProperty, binding);
}
catch (Exception exception)
{
MessageBox.Show(exception.Message + exception.StackTrace + exception.TargetSite);
}
}