Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVVM模式silverlight中,如何通过函数ok和cancel关闭OpenFileDialog?_C#_Silverlight_Mvvm_Openfiledialog_Childwindow - Fatal编程技术网

C# 在MVVM模式silverlight中,如何通过函数ok和cancel关闭OpenFileDialog?

C# 在MVVM模式silverlight中,如何通过函数ok和cancel关闭OpenFileDialog?,c#,silverlight,mvvm,openfiledialog,childwindow,C#,Silverlight,Mvvm,Openfiledialog,Childwindow,我在这个主题上看到了很多不同的信息,但没有任何帮助 你怎么想?在OpenFileDialog中使用比MVVM更简单的模式可能更好 我有两个功能确定和取消。每个都有(this.DialogResult=true)或 (this.DialogResult=false)。我必须使它在MVVM模式。我现在正在使用value->(boolcls=true)并将其绑定到DialogResult={Binding cls}并在不同的函数中更改此属性,但它不起作用。我有一些例外 你知道我如何通过关闭OpenFi

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

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

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

    create-as-method这里有一些东西可以帮你找到你想要的东西

        void OpenDialogAction(object param)
        {
            //Add code here
            OpenFileDialog d = new OpenFileDialog();
    
    
            if (d.ShowDialog() == true)
            {
                //set your variable true
            }
            else
            {
                //set your variable false
            }
        }
    
    如果您确定,并且无论状态如何,取消按钮始终处于启用状态,那么我认为将它们合并到MVVM设计模式中没有什么价值。我不使用silverlight,但假设它与WPF类似,您可以在属性窗格中检查取消按钮的IsCancel属性,这将在单击按钮时自动关闭对话框并将DialogResult设置为false。对于“确定”按钮,添加如下简单内容

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

    我知道一些纯粹主义者不希望代码背后有任何东西,但对我来说,更简单、更可维护的代码更好(实现MVVM的意义也更大)。现在,如果我的“确定”和“取消”按钮仅在某些模型条件下启用,我可能会将它们设置为与ModelView交互。

    首先粘贴准确的代码以及准确的异常。。谢谢
        private void DoneButtonClickHandler(object sender, RoutedEventArgs e)
        {
            DialogResult = true;
        }