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