我有一个Slider
控件,其最小值大于0.因此,滑块绑定到的VM中的int
类型属性具有滑块值范围之外的初始值。如何在应用程序启动时让滑块更新VM属性及其miminum值?目前只有在操作员使用滑块时才会更新。
<Slider Grid.Column="2" Grid.Row="1" Minimum="2" Maximum="100"
AutoToolTipPlacement="BottomRight" AutoToolTipPrecision="0"
Value="{Binding Path=Controller.MotorModel.SelectedMovementSpeed}" />
编辑:
我最初认为View应该定义运算符的限制是错误的。正如FCin所写,View应该只显示值,而逻辑应该在ViewModel中。这是我更新的XAML:
<Slider Grid.Column="2" Grid.Row="1" AutoToolTipPlacement="BottomRight" AutoToolTipPrecision="0"
Minimum="{Binding Path=Controller.MotorModel.MinimumMovementSpeed}"
Maximum="{Binding Path=Controller.MotorModel.MaximumMovementSpeed}"
Value="{Binding Path=Controller.MotorModel.SelectedMovementSpeed, Mode=TwoWay}" />
答案 0 :(得分:1)
在ViewModel中设置Minimum
值,而不是在View中。 MVVM中的视图不应包含任何逻辑。它们仅向用户显示属性。 ViewModels应根据有界属性和方法验证用户的输入。