使用WPF使用MVVM(Model-View-ViewModel)处理FIleDialog

时间:2015-04-09 09:16:25

标签: c# wpf xaml mvvm

我是C#noob,所以请放纵我;)

我正在研究一个WPF应用程序,并希望在MVVM模式中实现我的程序。 我想写一个简单的HTML编辑器。 所以起初我的应用程序包含一个菜单,该菜单拥有“文件”项。在那里你应该能够在“新”,“打开”,“保存”,“另存为”和“关闭”之间进行选择。 在我使用C#的第一步中,我在MainWindow的CodeBehind-File中编写了这些函数并且它有效。但现在我想通过使用MVVM模式以“更清洁”的方式实现我的程序。但我真的有问题要理解这种模式,特别是在没有CodeBehind的情况下实现SaveDialog和OpenDialog。

     private void Oeffnen_Click(object sender, RoutedEventArgs e)
    {
        //neuen OpenDialog anlegen
        webBrowser2 = new WebBrowser();
        DockPanel.SetDock(webBrowser2, Dock.Top);
        this.DockPanel1.Children.Add(webBrowser2);

        opendlg = new Microsoft.Win32.OpenFileDialog();
        opendlg.Filter = "html files (*.html)|*.html|htm files (*.htm)|*.htm";
        //opendlg.RestoreDirectory = true;


        //öffne Opendialog
        if (opendlg.ShowDialog() == true)
        {
            try
            {
                if (opendlg.OpenFile() != null)
                {

                    filename = opendlg.FileName;
                    webBrowser2.Navigate("file:///" + filename);    //Öffne html Datei 

                    doc2 = webBrowser2.Document as IHTMLDocument2;
                    doc2.designMode = "On";                         //Editierbarkeit aktivieren
                }
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
            }
        }

所以这就是我的CodeBehind for FileOpen-function。

有人可以解释一下Open或SaveDialog的例子,或者其他方面,如何在这种应用程序中使用MVVM模式?

很抱歉,如果这个问题太笼统了。请询问详细信息。

谢谢!

0 个答案:

没有答案