C# 视图在启动时更新ViewModel属性

C# 视图在启动时更新ViewModel属性,c#,wpf,C#,Wpf,我有一个滑块控件,最小值大于0。因此,滑块绑定到的VM中的inttype属性的初始值超出了滑块值范围。如何让滑块在应用程序启动时使用其miminum值更新VM属性?当前,它仅在操作员使用滑块后更新 <Slider Grid.Column="2" Grid.Row="1" Minimum="2" Maximum="100" AutoToolTipPlacement="BottomRight" AutoToolTipPrecision="0" Value="{B

我有一个
滑块
控件,最小值大于0。因此,滑块绑定到的VM中的
int
type属性的初始值超出了滑块值范围。如何让滑块在应用程序启动时使用其miminum值更新VM属性?当前,它仅在操作员使用滑块后更新

<Slider Grid.Column="2" Grid.Row="1" Minimum="2" Maximum="100"
        AutoToolTipPlacement="BottomRight" AutoToolTipPrecision="0"
        Value="{Binding Path=Controller.MotorModel.SelectedMovementSpeed}" />

编辑:

我最初认为视图应该定义操作员的限制是错误的。如前所述,视图应仅显示值,而逻辑应位于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}" />


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

在代码中设置最小值,而不是在视图中设置最小值。因为没有
绑定模式。更新资源按钮双向
您必须以不同的方式解决此问题。ViewModel的初始值无论如何都不应该来自视图。@ManfredRadlwimmer是的,我可以在VM中使用常量设置初始属性值,并将
最小值绑定到常量,以避免设置两次。但是,视图不是在设置操作符限制吗?这有点反MVVM的味道,不是吗?@Oystein恰恰相反。视图模型应该设置限制。@老实说,这是我在视图模型中设置的。在我看来,你的逻辑需要知道它的局限性。