很抱歉,如果标题很奇怪,因为问题本身有点奇怪。
我在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,文本块和滑块位于同一页面但位于不同的堆叠面板中
答案 0 :(得分:0)
Slider
控件的Value
属性类型为double
,而TextBlock.Text
为字符串。在没有转换器的情况下将这两者绑定在一起就会遇到麻烦。您应该将Slider.Value
绑定到DataContext
/视图模型,并且通常会确保绑定Mode=TwoWay
。