对 MVVM 和用户控制事件有点困惑。
我认为我有一个用户控件。它有两种模式,即阅读和编辑。(文本模式)
<Grid
x:Name="LayoutRoot"
Background="Transparent">
<controls:MyUserControl
Mode="{Binding Path=TextMode,Mode=TwoWay}"
Text="{Binding Path=ReportText,Mode=TwoWay}"
</controls:MyUserControl>
</Grid>
当 TextMode 更改为 'Edit' 时,我想向电话应用程序栏添加一个 'Save' 按钮,当单击 Save 按钮时,我想从用户控件中保存文本。我还想禁用“读取”视图中的保存按钮。(即当 TextMode 为“读取”时)
执行此操作的正确 MVVM 方法是什么?我想到了两种方法:
1)我正在考虑在用户控件上公开 ModeChanged 属性并将其传播到视图,然后添加“保存”按钮。(但这是否违背了 MVVM 方式,即在代码中包含代码?)。
2) 处理依赖属性本身的propertychanged,并从用户控件添加保存按钮。(似乎不正确,因为应用程序逻辑混合在用户控件中)
我如何让视图模型参与其中?
什么是遵循 MVVM 进行此类操作的好方法。