我有一个看起来像这样的xaml文件。
<Window x:Class="Space4it.Energilab.DataApplicationWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:Space4it.Energilab.DataApplicationWPF"
Title="Space4it NetBitter database interface" Height="700" Width="1200"
x:Name="rootElement"
Icon="program.ico">
<Window.DataContext>
<local:MainWindowDataModel/></Window.DataContext>
MainWindowDataModel位于主WPF项目中,它在“Debug - X86”中工作。 但是当更改为“Production - X64”时,我收到此错误:
错误1名称“MainWindowDataModel”在名称空间“clr-namespace:Space4it.Energilab.DataApplicationWPF”中不存在。 C:\ Users \ tarp \ Dropbox \ Space4it \ Development \ Energilab \ Development \ Space4it.Energilab.Solution \ Space4it.Energilab.DataApplicationWPF \ MainWindow.xaml 10 5 Space4it.Energilab.DataApplicationWPF
我做了“干净”,重新编译......
有趣的是,DataGrid获取数据,但这个ComboBox内部网格没有!这是安装其他计算机程序时的一个问题。即Windows Server 2008。
<DataGridComboBoxColumn Header="Key" SelectedValueBinding="{Binding Path=t_keys_id, UpdateSourceTrigger=PropertyChanged}">
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding ElementName=rootElement, Path=DataContext.keyData}"/>
<Setter Property="IsEditable" Value="False"/>
<Setter Property="DisplayMemberPath" Value="nb_key" />
<Setter Property="SelectedValuePath" Value="id"/>
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding ElementName=rootElement, Path=DataContext.keyData}"/>
<Setter Property="IsEditable" Value="True"/>
<Setter Property="DisplayMemberPath" Value="nb_key" />
<Setter Property="SelectedValuePath" Value="id"/>
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
有没有人有任何想法?
答案 0 :(得分:1)
猜测一下,我会说Space4it.Energilab.DataApplicationWPF程序集是用“x86”平台编译的,而不是“AnyCPU”或“x64”......所以当你切换配置时它可以' t访问该程序集的64位版本。
如果它是第三方库,你没有它的源,那么你可以用CorFlags破解它以允许它被JIT打成64位(通过清除32位标志)。
http://msdn.microsoft.com/en-us/library/ms164699(v=vs.80).aspx
http://tipila.com/tips/53/how-to-check-if-a-dll-is-32-bit-or-64-bit
如果您有源,那么您可以构建它以便可以在64位模式下使用,查看解决方案中的配置管理器,并在“生产 - x64”中检查项目使用的平台配置