我最近从WinForms转移到WPF,我很难分开ViewModel和View。我正在设计ViewModel中的整个视图。尽管它行得通,但我确信它不是正确的方法。使用WPF和C的MVVM#
是否有无论如何我可以单独View和ViewModel而不修改太多?我已经做了一些研究,但没有那么有用。
编辑
XAML
<Window x:Class="PackageDeliveryTool.FolderCheck"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Main Window" Height="350" Width="640" ResizeMode="NoResize" ShowInTaskbar="False" Topmost="True" Cursor="Arrow" Closing="Window_Closing">
<!-- From here is the XAML view code which includes button/Grid/StackPanel etc -->
</Window>
而且我对模型的单独CS文件。其中有属性和propertyChanged事件。
这是特定Window的XAML.Cs文件。有行动,和模型对象(S),
public partial class CopyMessageWindow : Window
{
Model m = new Model("someValue");
public CopyMessageWindow()
{
InitializeComponent();
}
public void StartButton_Click(object sender, RoutedEventArgs e){
//Some code goes here uses Model instance
}
public void OtherLogicMethod(int val){
//Some other logic not related to UI, but to Background program. Also uses Model Instance
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
//When cancel button is clicked, uses Model instance
}
}
EDITx2
我已经写很多代码。我需要更简单的分离视图和ViewModel的方法。
硬不知道到目前为止你做过什么可说的。 – Abion47
查看它的一个非常基本的方法是,“设计”部分位于视图中,而“加载”数据或此类编码在ViewModel中完成。对于一个好的初学者友好的教程,请尝试[MVVM教程](https://www.tutorialspoint.com/mvvm/index.htm) –
ViewModel将您的模型和视图粘合在一起。它可以包含更新视图的逻辑(即背景颜色)。如果视图更新可以通过XAML完成,那么不要将它放在ViewModel上。 –