Lorsque je migre une application de Windows Forms vers WPF, j'essaie d'utiliser le modèle MVVM, mais cela devient un peu compliqué pour moi.Comment appliquer MVVM correctement dans ce cas?
Dans Windows Forms I ont une forme qui contient une barre de progression qui a défini de nouvelles méthodes qui me permettent d'exécuter les étapes, définir sa valeur, etc. Ce code est placé dans le code de la barre de progression derrière comme ci-dessous:
public class MyProgressBar : ProgressBar
{
public MyProgressBar()
{
InitializeComponent();
}
public void Method01()
{...}
public void Method02()
{...}
public void Method03()
{...}
}
Le code de Method01, Method02 et Method03 est utilisé dans le conteneur, alors, voici ma question: Dans WPF, puisque j'utilise le modèle MVVM, Où dois-je placer ce code ??
Jusqu'à présent, j'ai cette classe:
Mon modèle:
public class MyFormModel : DataTable
{
public OutputResultsDataTable()
: base()
{
Columns.Add(new DataColumn("Number"));
Columns.Add(new DataColumn("Message"));
Columns.Add(new DataColumn("Detail"));
}
}
Mon ViewModel:
public class MyNewWPFForm
{
/// <summary>
///
/// </summary>
public MyFormModel MyData{ get; set; }
/// <summary>
/// Constructor
/// </summary>
public MyNewWPFForm()
{
if (System.Windows.Application.Current.MainWindow != null)
{
MyData= new MyFormModel();
}
}
}
Dans WPF, je l'ai déjà créé mon nouveau contrôle ProgressBar et sa forme de récipient, même j'ai lu sur MVVM mais je ne comprends pas où dois-je mettre le code de Method0X, parce que, selon ce que j'ai lu, je devrais mettre ce code dans le vi ewModel, mais, voici un autre problème: Comment pourrais-je avoir accès à ma barre de progression à partir de mon modèle de vue, car il est dans un autre formulaire?
J'espère que quelqu'un peut m'aider. Merci d'avance.
Que sont supposés faire les méthodes01,2,3? –
Je pense que ce post sera bénéfique pour vous: http://stackoverflow.com/questions/1619505/wpf-openfiledialog-with-the-mvvm-pattern – dugas
@DaveHillier, Depuis que j'ai un listView soit Method0X permettez-moi d'insérer lignes directement, copier le contenu dans le presse-papiers, effectuer une étape dans la barre de progression, etc – Dante