對不起,如果標題很奇怪,因爲問題本身有點奇怪。Slider控件在TextBlock的{Binding}上顯示異常行爲
我在Clientside上有一個TextBlock和Slider控件。
滑塊是{綁定}到文本塊。
這是他們的代碼 -
<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_ValueChanged_1,這將其值設置爲服務器。服務器接受該值並將新值發送回客戶端,並通過inotifypropertychanged實現的可觀察集合將來自服務器的這個新值設置爲textblock(x:Name =「Name1Value」)。滑塊是{綁定}文本塊。
1)現在我第一次在客戶端更改滑塊上的值,服務器接受新值並返回新值,我將新值設置爲文本塊。 2)現在我正在更改服務器上的值,並且正確更新文本塊中的值,然後滑塊值更改爲文本塊值。
3)現在在第一次循環後,如果我再次更改服務器上的值,客戶端上的文本塊將得到更新,但滑塊不會更改爲文本塊值。
但滑塊綁定到文本塊。我該如何解決這個問題?
EDIT1:僅供參考,正文塊和滑塊都在同一個頁面,但在不同stackpanels
這似乎很混亂,如果不是遞歸的,這裏用戶體驗的實際目標是什麼。這聽起來像你想使用滑塊來設置一個值,但通過在服務器上設置的值覆蓋該值?所以如果我改變滑塊,我不會看到我離開它的滑塊,但它會根據服務器返回的東西重新設置(假設你正在嘗試連接到一起的作品?)我不知道爲什麼你在這種情況下使用元素綁定呢? – 2013-05-13 05:12:54
@ JimO'Neil當用戶在客戶端更改滑塊時,滑塊會立即更新,然後等待服務器接受滑塊的新值。當服務器接受該值時,文本塊被更新,滑塊(綁定到文本塊)保持其新的位置。但是在第一次遞歸之後,textblock仍然得到更新,但滑塊停止更新爲文本塊的值,即使其{Binding}。這裏的商業案例是,當用戶更改滑塊值時,服務器應接受新值。否則,滑塊可以回到以前的位置。 – 2013-05-13 08:26:58