我正在尝试新的x:Bind,我遇到了一个奇怪的问题。我想将滑块控件绑定到媒体元素,让用户看到/调整它们的位置。如果我使用经典的绑定语法,它可以正常工作。
{
"_id" : "nAwt3b76c24mZfqxz",
"title" : "test",
"test" : [
{
"4" : false,
"15" : false,
"30" : false,
"75" : true,
"id" : "ePce6fBAHx9KeKjuM"
}
]
}
滑块在播放媒体时移动,拖动滑块会更改媒体流中的位置。一切都很好。
但是,如果我将代码更改为使用x:Bind ...
false
当媒体播放时,滑块不再移动。我仍然可以用它来重新定位媒体播放,但看起来滑块的最大值也没有正确设置。如果我尝试将其拖到最后,我会收到堆栈溢出异常。
而且,为了完整起见,这里是按钮点击事件的代码:
var result = Collection.findOne({_id: 'nAwt3b76c24mZfqxz'}).test;
......和转换器......
30
有没有人知道为什么第一个有效而不是另一个?我对代码所做的唯一改变是我绑定滑块的值和最大值的方式。
答案 0 :(得分:1)
MediaElement的position属性并不打算像这样绑定。 DependencyProperties没有关于它们何时触发事件和能够检索值的单独概念。每当你阅读它时,这个值都需要是正确的,有点像动画属性。您不希望进入位置属性的事件更改循环,因为这可能/将会与CPU挂钩,因为值会不断变化,可能比UI滴答更快。 媒体传输控件使用具有1s更新频率的Dispatch Timer,用于更新滑块和/或文本字段。您可以使用更快的频率,但对于大多数情况,1s可能足够频繁。