0

我有一个看起来像这样的 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 项目中,它在“调试 - X86”中工作。但是当更改为“生产 - X64”时,我收到此错误:

错误 1 ​​命名空间“clr-namespace:Space4it.Energilab.DataApplicationWPF”中不存在名称“MainWindowDataModel”。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>

有没有人有任何想法?

4

1 回答 1

1

猜测一下,我会说 Space4it.Energilab.DataApplicationWPF 程序集是用“x86”平台编译的,而不是“AnyCPU”或“x64”......所以当你切换配置时它无法访问该程序集的 64 位版本。

如果它是第 3 方库,其来源您没有,那么您可以使用 CorFlags 破解它以允许将其 JITted 为 64 位(通过清除 32 位标志)。

如果您确实有源代码,那么您可以构建它以便在 64 位模式下使用它查看解决方案中的配置管理器,并检查“生产 - x64”中的项目使用了哪个平台配置

于 2012-08-22T18:22:04.300 回答