我在这个主题上看到了很多不同的信息,但没有任何帮助。
(this.DialogResult = true)
或
(this.DialogResult = false)
。我必须以MVVM模式制作它。我现在正在使用value -> (bool cls = true)
并将其绑定到DialogResult = {Binding cls}
并在不同的函数中更改此属性,但它不起作用。我有一些例外。你知道如何通过关闭OpenFileDialog
来解决这个问题吗?
答案 0 :(得分:0)
在这里创建方法可能会让您了解所需的内容
void OpenDialogAction(object param)
{
//Add code here
OpenFileDialog d = new OpenFileDialog();
if (d.ShowDialog() == true)
{
//set your variable true
}
else
{
//set your variable false
}
}
答案 1 :(得分:0)
如果您确定并且 CANCEL 按钮始终启用,无论状态如何,我认为将它们合并到MVVM设计模式中没什么价值。我不做Silverlight但是假设它与WPF类似,你可以在Properties窗格中检查Cancel按钮的IsCancel属性,当你单击按钮时,它会自动关闭对话框并设置DialogResult = false。对于你的OK按钮,添加像这样简单的东西
<Button ...Your normal settings here and then...
Click="DoneButtonClickHandler">
然后在后面的代码中。
private void DoneButtonClickHandler(object sender, RoutedEventArgs e)
{
DialogResult = true;
}
我知道一些纯粹主义者在代码中不需要任何东西,但对我来说,更简单,更易于维护的代码更好(以及实现MVVM的重点)。现在如果我的OK和Cancel按钮仅在某些模型条件下启用,我可能会将它们设置为与ModelView交互。