【发布时间】:2011-03-19 03:12:59
【问题描述】:
-
combobox1.SelectedItem绑定到SelectedItemProperty。 - 设置
SelectedItemProperty时,计算MaxValueProperty MaxValueProperty绑定到slider1.Maximumslider1.Value绑定到SliderValueProperty
这些都可以正常工作,除非combobox1.SelectedItem 发生变化,并且MaxValueProperty 被计算出来,并且小于SliderValueProperty。
在视图中:
-
slider1.Maximum已更新,因为MaxValueProperty已更改, -
slider1.Value设置为slider1.Maximum,这是当最大值更改为小于该值时滑块的默认行为。
但是,发生这种情况时,SliderValueProperty 不会更新为新的slider1.Value
<Slider Name="slider1" Maximum="{Binding Path=MaxValueProperty, Mode=TwoWay}" Value="{Binding Path=SliderValueProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
我知道 slider1.Value 正在发生变化,因为我绑定了一个标签,并且标签发生了变化
<Label Content="{Binding ElementName=slider, Path=Value, Converter={StaticResource NumberToStringConverter}}" />
如何确保绑定已更新?
【问题讨论】:
标签: wpf data-binding mvvm