0

我看到了很多关于这个主题的不同信息,但没有任何帮助。

  1. 你怎么看?可能比使用 OpenFileDialog 的 MVVM 使用更简单的模式?
  2. 我有 2 个功能确定和取消。每个都有(this.DialogResult = true)(this.DialogResult = false)。我必须以 MVVM 模式制作它。我现在正在使用value -> (bool cls = true)并将其绑定到DialogResult = {Binding cls}并在不同的功能中更改此属性,但它不起作用。我得到了一些例外。

你知道我如何通过关闭来解决这个问题OpenFileDialog吗?

4

2 回答 2

0

如果您问题并且无论状态如何都始终启用取消按钮,那么我认为将它们合并到 MVVM 设计模式中几乎没有价值。我不做silverlight,但假设它类似于WPF,您可以在“属性”窗格中检查“取消”按钮的IsCancel 属性,当您单击该按钮时,它将自动关闭对话框并设置DialogResult=false。为您的确定按钮添加类似这样的简单内容

    <Button ...Your normal settings here and then...
            Click="DoneButtonClickHandler">

然后在后面的代码中。

    private void DoneButtonClickHandler(object sender, RoutedEventArgs e)
    {
        DialogResult = true;
    }

我知道有些纯粹主义者对背后的代码一无所获,但对我来说,更简单、更易于维护的代码更好(以及实现 MVVM 的重点)。现在,如果我的 OK 和 Cancel 按钮仅在某些模型条件下启用,我可能会将它们设置为与 ModelView 交互。

于 2011-12-27T19:09:13.740 回答
0

这里的 create as 方法可能会让您了解您正在寻找的内容

    void OpenDialogAction(object param)
    {
        //Add code here
        OpenFileDialog d = new OpenFileDialog();


        if (d.ShowDialog() == true)
        {
            //set your variable true
        }
        else
        {
            //set your variable false
        }
    }
于 2011-12-27T19:06:06.363 回答