0

我目前正在.NET v4.0 中开发 WPF 应用程序。

我有两个网格,它们根据我的 ViewModel 中的一个属性显示为隐藏:

<Grid Name="Results" Grid.Column="1" Visibility="{Binding ShowSearch, Converter={StaticResource Bvc}}">

<Grid Name="ProvisionalStreet" Grid.Column="1" Visibility="{Binding ShowProvisional, Converter={StaticResource Bvc}}">

当用户单击按钮时,DelegateCommand 执行以下操作:

this.ShowProvisional = true;
this.ShowSearch = false;

Show临时二传手:

set
{
    this.showProvisional = value;
    this.RaisePropertyChanged(() => this.ShowProvisional);
}

ShowSearch 设置器:

set
{
    this.showSearch = value;
    this.RaisePropertyChanged(() => this.ShowSearch);
}

该代码在 Visual Studio 2012 中的本地计算机 (Windows 7) 上运行良好,或者当我双击构建目录中的可执行文件时。然而,我们的测试人员正在登录 Citrix,这是一个 Windows Server 2003 环境,当他们单击按钮时没有任何反应。

但是,如果我分配Visibility="{Binding ShowProvisional, Converter={StaticResource Bvc}}"给一个标签或文本框,例如它适用于他们。

有任何想法吗?与 Windows Server 2003 的 WPF 问题几乎相同,但没有给出答案。

非常感激

编辑:

<BooleanToVisibilityConverter x:Key="Bvc" />

编辑:

        [ImportingConstructor]
        public GazetteerView(GazetteerViewModel viewModel)
            : this()
        {
            this.DataContext = viewModel;
        }
4

1 回答 1

0

您在开发机器上使用不同版本的 .NET (4.5),这只是模拟 4.0 版本。事实证明,这两个版本之间存在一些不兼容(即使您将 4.0 降低目标也不会发生在 4.5 中修复的错误)。

在我使用 .NET 4.0(您在 2003 服务器上使用)的工作中,我发现有时在 .NET 中会StaticResource出现故障DataTemplates。这个问题在 4.5 版本中得到了修复,所以这就是你没有遇到这些问题的原因。你应该改变:

编辑:以下不起作用,因为 Converter 不是依赖属性。

Visibility="{Binding ShowSearch, Converter={StaticResource Bvc}}"

Visibility="{Binding ShowSearch, Converter={DynamicResource Bvc}}"
于 2013-07-02T13:16:33.953 回答