【发布时间】:2019-12-27 15:45:25
【问题描述】:
我正在使用 NAudio 在 WPF 上创建我的音频播放器。
我正在添加一个slider,它将滚动歌曲。
XAML:
<Slider Height="30"
Value="{Binding Path=MediaReader.Position, Mode=TwoWay}"
Maximum="{Binding Path=MediaReader.Length, Mode=OneWay}"/>
注意。 MediaReader - 这是一个返回MediaFoundationReader类型对象的属性:
MediaFoundationReader mediaReader;
public MediaFoundationReader MediaReader => mediaReader;
问题:当歌曲播放时,滑块属性Value 没有改变!但是通过滚动滑块的拇指,MediaReader 的属性 Position 会发生变化。
为什么会这样,我该如何解决?
【问题讨论】:
-
媒体阅读器未发送更改通知,因此无法更新 UI。
-
@Alejandro,谢谢!也许我应该创建一个计时器,每个刻度都会更新滑块?
-
您需要将模型包装在实现 INotifyPropertyChanged 接口的视图模型中
-
@BorisMakhlin 这是一种选择,但是这会占用大量 CPU。在库的文档中查找通知您的内容,例如更新位置的事件或回调。
-
使用更新绑定的行为怎么样? stackoverflow.com/a/44253691/8454410