如果此WPF应用程序中使用System.Windows.Forms.FolderBrowserDialog,为什么WPF应用程序不能正确响应DialogResult值?

如果此WPF应用程序中使用System.Windows.Forms.FolderBrowserDialog,为什么WPF应用程序不能正确响应DialogResult值?,wpf,winforms,mvvm,folderbrowserdialog,Wpf,Winforms,Mvvm,Folderbrowserdialog,我在WPF MVVM应用程序中使用System.Windows.Forms.FolderBrowserDialog实例。请从视图模型中查看以下代码: . . . . . . . . using System.Windows.Forms; . . . . . . . . FolderBrowserDialog dialog = new FolderBrowserDialog(); DialogResult res = dialog.ShowDialog(); if (res == DialogRe

我在WPF MVVM应用程序中使用
System.Windows.Forms.FolderBrowserDialog
实例。请从视图模型中查看以下代码:

. . . . . . . .
using System.Windows.Forms;
. . . . . . . .
FolderBrowserDialog dialog = new FolderBrowserDialog();
DialogResult res = dialog.ShowDialog();
if (res == DialogResult.OK)
{
   this.PathToExcelExportRepository = string.Copy(dialog.SelectedPath);
   this.IsTurnOffExportToExcelSelected = false;
   this.IsTurnOnExportToExcelSelected = true;
   . . . . . . . . .
}
其中,
IsTurnOffExportToExcelSelected是:

   public bool IsTurnOffExportToExcelSelected
   {
        get { return this._isTurnOffExportToExcelSelected; }
        set { this.SetProperty(ref this._isTurnOffExportToExcelSelected, value); }
   }
public bool IsTurnOnExportToExcelSelected
{
   get { return this._isTurnOnExportToExcelSelected; }
   set { this.SetProperty(ref this._isTurnOnExportToExcelSelected, value); }
}
IsTurnOneExportToExcelSelected
IsTurnOneExportToExcelSelected是:

   public bool IsTurnOffExportToExcelSelected
   {
        get { return this._isTurnOffExportToExcelSelected; }
        set { this.SetProperty(ref this._isTurnOffExportToExcelSelected, value); }
   }
public bool IsTurnOnExportToExcelSelected
{
   get { return this._isTurnOnExportToExcelSelected; }
   set { this.SetProperty(ref this._isTurnOnExportToExcelSelected, value); }
}
这些属性中的每一个都是视图中菜单项的绑定源:

<telerik:RadContextMenu.ContextMenu>
   <telerik:RadContextMenu>
       <telerik:RadMenuItem Header="Turn on export to MS Excel" IsCheckable="True" IsChecked="{Binding IsTurnOnExportToExcelSelected, Mode=TwoWay}"
                                 Command="{Binding TurnOnExportToExcelCommand}"/>
       <telerik:RadMenuItem Header="Turn off export to MS Excel" IsCheckable="True" IsChecked="{Binding IsTurnOffExportToExcelSelected, Mode=TwoWay}"
                                 Command="{Binding TurnOffExportToExcelCommand}"/>
   </telerik:RadContextMenu>
</telerik:RadContextMenu.ContextMenu>

如果您需要,那么我将提供从该命令调用的方法的源代码:peekAbsoluteDataForExportToCsv、exportToCsvAbsoluteChartPoints、peekComparativeDataForExportToCsv、,exporttosvcomparativeChartPoints.

我建议您在
IsTurnOneExportToExcelSelected
的setter中设置一个断点,并检查堆栈跟踪。
TurnOneExportToExcelCommand
SetProperty
做什么?你能在你的问题中添加他们的定义吗?你的问题现在没有多大意义。它没有提供重现您的问题所需的信息。我没有telerik,但即使没有执行任何命令或代码未触及check属性,也没有启用单击检查?也就是说,当
res==DialogResult.OK
false
时,检查属性不会在代码中更新,因此只有当前菜单按钮的属性被反转?grek40,您知道如何保护这种错误情况吗?