【发布时间】:2016-04-14 16:46:10
【问题描述】:
您可能会说它是 How to stop update value of slider while dragging it? 的副本,但老实说,2011 年的解决方案对我不起作用(甚至评论其他用户接受的答案),其他答案与我无关.所以请大家耐心等待。
这是我的问题:我有一个绑定到类似值的滑块:
<Slider Name="AudioSlider" Value="{Binding AudioValue}"
Grid.Column="1" Grid.Row="1" Height="30"
SmallChange="1" Maximum="100"
IsSnapToTickEnabled="True"
IsMoveToPointEnabled="True"/>
这就是价值:
private double _audioValue;
public double AudioValue
{
get { return _audioValue; }
set
{
if (_audioValue == value)
return;
_audioValue = value;
SendPacket(cockpitType, (byte)Index.AudioSlider, (byte)_audioValue);
OnPropertyChanged("AudioValue");
}
}
如您所见,每次值更改时,我都会发送一个数据包,当它在拖动时更新值时,它只是在服务器上发送垃圾邮件,这是必须防止的。
我尝试将滑块绑定到函数 (mouseUp),但无法通过这种方式获取值。
任何想法我能做什么?
非常感谢。
编辑:
WPF: Slider with an event that triggers after a user drags 这里的答案对我没有帮助,因为它是数据模板中生成的滑块,事件与我无关。
【问题讨论】:
-
“其他答案与我无关”。那可能是因为你没有仔细观察。如果将
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault添加到依赖属性元数据中,derived Slider with FinalValue property 将完美运行。