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
(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;
}