2013-07-02 7 views
0

В настоящее время я разрабатываю приложение WPF в .NET версии 4.0.WPF Visibility Issue Windows Server 2003

У меня есть две сетки, которые показаны скрытые на основе свойства в моем 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 сеттер:

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

ShowSearch setter:

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

Код отлично работает на моем локальном компьютере (Windows 7) в Visual Studio 2012 или когда я дважды щелкаю исполняемый файл в каталоге сборки. Однако наши тестеры регистрируются в Citrix, который является средой Windows Server 2003, и когда они нажимают кнопку, ничего не происходит.

Однако, если я присваиваю Visibility="{Binding ShowProvisional, Converter={StaticResource Bvc}}" ярлыку или текстовое поле, например, оно работает на них.

Любые идеи? В значительной степени та же проблема, что и WPF issues with Windows Server 2003, но ответов не было.

Высокую оценку

EDITED:

<BooleanToVisibilityConverter x:Key="Bvc" /> 

Отредактировано:

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

Ну, может быть не связано, но как ваш 'RaisePropertyChanged' выглядеть? И что вы подразумеваете под «Однако, если я назначаю« Видимость = »...« «»? – JeffRSon

+0

@ Андрей Рейнер, я второй Джефф для запроса RaisePropertyChanged - просьба указать. Также мы можем увидеть код для конвертера Bvc? – zaitsman

+0

Мой опыт работы с WPF на XP заставляет меня думать, что это ошибка системы/драйвера видеоадаптера. Может быть не связано, но вы можете попробовать: http: //support.microsoft.com/kb/955692 – Bolu

ответ

0

Вы используете различные версии .NET (4.5) на вас устр машину, которая только impersontating версии 4.0 , Оказывается, существуют некоторые несовместимости между этими двумя версиями (ошибки, которые были исправлены в 4.5, не возникнут, даже если вы снижаете рейтинг 4.0).

В моей работе с .NET 4.0 (которую вы используете на своем сервере 2003) я обнаружил, что иногда StaticResource неисправен в DataTemplates. Эта проблема была исправлена ​​с выпуском версии 4.5, поэтому поэтому вы не получаете эти проблемы. Вы должны изменить:

EDIT: следующее не работает, потому что Конвертер не является свойством зависимостей.

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

в

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

Спасибо, я попробую это –

+0

Получение следующего сообщения: «DynamicResourceExtension» может быть установлен только в DependancyProperty объекта DependancyObject ». Есть идеи? –

+0

Кажется, вы не можете этого сделать, потому что конвертер по привязке не является свойством зависимостей. Мой единственный совет - попробовать запустить его в отладчике на новом компьютере без установленного 4.5 (для этого вам нужно vs2010) и проверить ошибки. – ghord

Смежные вопросы