查看启动时更新ViewModel属性

时间:2017-11-22 07:31:56

标签: c# wpf

我有一个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}" />

1 个答案:

答案 0 :(得分:1)

在ViewModel中设置Minimum值,而不是在View中。 MVVM中的视图不应包含任何逻辑。它们仅向用户显示属性。 ViewModels应根据有界属性和方法验证用户的输入。