WPF可见性问题Windows Server 2003

本文关键字:2003 Server Windows 可见性问题 WPF | 更新日期: 2023-09-27 18:20:39

我目前正在.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;

显示临时设置:

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}}"分配给标签或文本框,它对它们有效。

有什么想法吗?与WindowsServer2003的WPF问题几乎相同,但没有给出答案。

非常感谢

编辑:

<BooleanToVisibilityConverter x:Key="Bvc" />

编辑:

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

WPF可见性问题Windows Server 2003

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

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

EDIT:由于Converter不是依赖属性,因此以下操作不起作用

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

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