【发布时间】:2013-05-13 01:54:02
【问题描述】:
对不起,如果标题很奇怪,因为问题本身有点奇怪。
我在客户端有一个 TextBlock 和滑块控件。
滑块 {Binding} 到 Textblock。
这是他们的代码 -
<TextBlock Text="{Binding Value}" x:Name="Name1Value" FontSize="25"/>
<Slider ValueChanged="slider_ValueChanged_1" x:Name="slidervalve" Value= "{Binding ElementName=Name1Value,Path=Text}" StepFrequency="25" />
现在当 Slider Value 改变时,Slider 调用一个方法slider_ValueChanged_1,将它的值发送到服务器。服务器接受该值并将新值发送回客户端,并且来自服务器的这个新值通过实现 inotifypropertychanged 的 observablecollection 设置为文本块(x:Name="Name1Value")。滑块 {Binding} 到文本块。
1) 现在我第一次更改客户端滑块上的值时,服务器接受新值并返回新值,我将新值设置为文本块。 2)现在我正在更改服务器上的值,并且该值在文本块中正确更新,然后滑块值更改为文本块值。
3) 现在在第一个循环之后,如果我再次更改服务器上的值,客户端上的文本块正在更新,但滑块不会更改为文本块值。
但滑块绑定到文本块。我该如何解决这个问题?
Edit1:仅供参考,文本块和滑块在同一页面但在不同的堆栈面板中
【问题讨论】:
-
这看起来很混乱,如果不是递归的话,这里用户体验的实际目标是什么。听起来您想使用滑块设置一个值,但通过服务器上设置的值覆盖该值?因此,如果我更改滑块,我不会看到我离开它的滑块,但它会根据服务器返回的内容为我重置(好吧,假设你试图连接在一起的东西有效?)我'不确定我明白你为什么在这种情况下使用元素绑定?
-
@JimO'Neil 当客户端用户更改滑块时,滑块会立即更新,然后等待服务器接受滑块的新值。当服务器接受该值时,文本块被更新并且滑块(绑定到文本块)保持其新位置。但是在第一次递归之后,文本块仍然可以正常更新,但滑块停止更新到文本块的值,即使它的 {Binding} 。这里的商业案例是,当用户更改滑块值时,服务器应该接受新值。否则滑块回到之前的位置。
标签: xaml windows-8 windows-runtime winrt-xaml