滑块控件使用TextBlock显示{Binding}上的异常行为

时间:2013-05-13 01:54:02

标签: xaml windows-8 windows-runtime winrt-xaml

很抱歉,如果标题很奇怪,因为问题本身有点奇怪。

我在Clientside上有一个TextBlock和Slider Control。

Slider是{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将来自服务器的这个新值设置为textblock(x:Name =“Name1Value”)。滑块是{Binding}到文本块。

1)现在我第一次更改客户端上滑块的值,服务器接受新值并返回新值,我将新值设置为textblock。 2)现在我正在更改服务器上的值,并在文本块中正确更新值,然后滑块值更改为文本块值。

3)现在在第一个周期后,如果我再次更改服务器上的值,客户端上的文本块将更新,但滑块不会更改为文本块值

但滑块绑定到文本块。我该如何解决这个问题?

Edit1:FYI,文本块和滑块位于同一页面但位于不同的堆叠面板中

1 个答案:

答案 0 :(得分:0)

Slider控件的Value属性类型为double,而TextBlock.Text为字符串。在没有转换器的情况下将这两者绑定在一起就会遇到麻烦。您应该将Slider.Value绑定到DataContext /视图模型,并且通常会确保绑定Mode=TwoWay