C# MVVM在视图中命令控件可以吗?

C# MVVM在视图中命令控件可以吗?,c#,xaml,mvvm,C#,Xaml,Mvvm,我可能只是对MVVM如何正常工作感到困惑 我有一个属性(zoomlevel),我认为它不是数据本身的属性,所以我觉得它不在viewmodel中。我觉得它实际上是视图的一个属性,所以我不太愿意将处理该属性的命令放在viewmodel中 在需要处理此命令的视图中,可以将relaycommand附加到控件上吗 我想这确实是一个MVVM是否完全不需要代码的问题,因为我觉得将执行命令的实际代码放在控件中比将代码放在viewmodel中然后根据viewmodel的某些属性更新控件更有意义设计模式,它基本上描

我可能只是对MVVM如何正常工作感到困惑

我有一个属性(zoomlevel),我认为它不是数据本身的属性,所以我觉得它不在viewmodel中。我觉得它实际上是视图的一个属性,所以我不太愿意将处理该属性的命令放在viewmodel中

在需要处理此命令的视图中,可以将relaycommand附加到控件上吗


我想这确实是一个MVVM是否完全不需要代码的问题,因为我觉得将执行命令的实际代码放在控件中比将代码放在viewmodel中然后根据viewmodel的某些属性更新控件更有意义设计模式,它基本上描述了如何将UI与逻辑分离

它是通过在VM中添加逻辑来实现的。它没有说任何地方,我知道,你不应该使用代码隐藏文件,也没有说你不应该把代码放进去


我使用MVVM,但仍然有一个代码隐藏文件。例如,它是放置特定于UI的代码的理想场所,这在VM中可能有点困难。

MVVM是一种体系结构设计模式,基本上描述了如何将UI与逻辑分离

它是通过在VM中添加逻辑来实现的。它没有说任何地方,我知道,你不应该使用代码隐藏文件,也没有说你不应该把代码放进去


我使用MVVM,但仍然有一个代码隐藏文件。例如,它是放置特定于UI的代码的理想场所,这在VM中可能有点困难。

另一个问题已经解决了这一点:ViewModels旨在为视图建模,因此尽管ZoomLevel可能不是模型上的数据属性,它可能是属于ViewModel的视图特定的业务属性。当然,如果它确实是一个与应用程序逻辑无关的视图特定属性,请随意将其放在视图后面的代码中:)这已经在另一个问题中得到了解决:ViewModels旨在为视图建模,因此尽管ZoomLevel可能不是模型上的数据属性,它可能是属于ViewModel的视图特定的业务属性。当然,如果它确实是与应用程序逻辑无关的特定于视图的属性,那么可以将其放在视图后面的代码中:),这意味着只有特定于UI的代码应该放在代码后面。只要您不将应用程序/业务逻辑放在代码隐藏中就可以了。这意味着只有特定于UI的代码应该放在代码隐藏中。只要您不将应用程序/业务逻辑放在代码后面,就可以了。