WPF可见性问题Windows Server 2003

时间:2013-07-02 12:57:26

标签: c# wpf xaml mvvm telerik

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

ShowProvisional setter:

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

ShowSearch setter:

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

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

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

有什么想法吗?与WPF issues with Windows Server 2003几乎相同的问题但没有给出答案。

非常感谢

编辑:

<BooleanToVisibilityConverter x:Key="Bvc" />

编辑:

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

1 个答案:

答案 0 :(得分:0)

您在dev计算机上使用的是不同版本的.NET(4.5),这只会影响4.0版本。事实证明,这两个版本之间存在一些不兼容性(即使你在4.0下降,也不会出现4.5中修正的错误。)

在我使用.NET 4.0(您在2003服务器上使用)的工作中,我发现有时StaticResource DataTemplates发生故障。 4.5版本修复了这个问题,这就是为什么你不解决这些问题。你应该改变:

编辑:以下操作无效,因为Converter不是依赖项属性。

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

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