.net 滑块延迟';s的双向值绑定会导致波动行为
我将a的值绑定到一个整数属性,该属性表示网络设备上的卷。此网络请求需要一点时间(通常考虑解耦UI(滑块)从实际获取和设置卷的组件。当滑块值更改时,它应将更改卷为新值的请求排队,但仍将继续。仅当您第一次从设备绘制或刷新UI时,才从设备的卷设置滑块位置;您可能不会认为卷已更改设置用户将其拖动到的位置 编辑 (充分披露:我自己没有做过很多WPF).net 滑块延迟';s的双向值绑定会导致波动行为,.net,wpf,vb.net,data-binding,wpf-controls,.net,Wpf,Vb.net,Data Binding,Wpf Controls,我将a的值绑定到一个整数属性,该属性表示网络设备上的卷。此网络请求需要一点时间(通常考虑解耦UI(滑块)从实际获取和设置卷的组件。当滑块值更改时,它应将更改卷为新值的请求排队,但仍将继续。仅当您第一次从设备绘制或刷新UI时,才从设备的卷设置滑块位置;您可能不会认为卷已更改设置用户将其拖动到的位置 编辑 (充分披露:我自己没有做过很多WPF) 因此,在研究了我的意思的一个实际示例之后,我了解了UpdateSourceTrigger,它为您提供了许多触发绑定元素重新绑定的方法。我发现,它将Updat
因此,在研究了我的意思的一个实际示例之后,我了解了UpdateSourceTrigger,它为您提供了许多触发绑定元素重新绑定的方法。我发现,它将
UpdateSourceTrigger
与计时器相结合。其思想是拖动滑块开始一个短暂的超时,然后UpdateSourceTrigger
被告知更新其数据绑定。诀窍是,当用户继续更改滑块值时,超时被中断。因此,最终的效果是,在用户最终确定所需的值之前,您的设备实际上不会使用滑块值进行更新,这将在滑动您的设备时为您提供平滑、响应迅速的UIe正在查找。您仍然可以像现在一样从设备上实时更新滑块。我希望这会让事情变得更清楚。可以工作,但用户也可以通过其他方式(如物理遥控器或应用程序的第二个实例)更改音量。这会导致滑块显示不正确的值,这是我希望始终避免的。基本上,您建议将绑定模式设置为OneWayToSource(或其他名称)然后在setter上实现某种形式的异步。好吧,我想你可以在加载或刷新设备时扔掉关于它的部分。你可以留在设备组件通知UI并设置滑块值的部分,但添加逻辑,在用户仍在拖动幻灯片时临时禁用更新r、 听起来不错,但我该怎么做呢?我对WPF不是很有经验(仍在学习基础知识),所以你需要对我有耐心。:D
Private _playbackVolume As Integer
Private _deviceForDemonstrationPurposes As New Device
Public Property PlaybackVolume As Integer
Get
Return _playbackVolume
End Get
Set(value As Integer)
_deviceForDemonstrationPurposes.Volume = value
End Set
End Property
Friend Sub UpdateVolume(volume As Integer)
' this is called by the instance of Device whenever its volume changes.
_playbackVolume = volume
RaisePropertyChanged("PlaybackVolume") ' INotifyPropertyChanged implementation.
End Sub