2011-01-21 152 views
1

我收到了一個非常不尋常的錯誤,該項目用於在我嘗試將ENUM綁定到組合框的工程中。爲了確保我沒有犯過編碼錯誤,我使用SO Question 58743ageektrapped作爲自包含用戶控件的樣本進行了新的用戶控制。我使用.Net4 Client Framework作爲環境和VS2010。該XAML是 -數據綁定枚舉組合框

<UserControl x:Class="Barcode.Views.UserControl1" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:System="clr-namespace:System;assembly=mscorlib" 
      mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> 

    <UserControl.Resources> 
     <ObjectDataProvider MethodName="GetValues" 
          ObjectType="{x:Type System:Enum}" 
          x:Key="AlignmentValues"> 
      <ObjectDataProvider.MethodParameters> 
       <x:Type TypeName="HorizontalAlignment" /> 
      </ObjectDataProvider.MethodParameters> 
     </ObjectDataProvider> 
    </UserControl.Resources> 
    <Grid> 
     <ComboBox Name="myComboBox" SelectedIndex="0" Margin="8" 
        ItemsSource="{Binding Source={StaticResource AlignmentValues}}" /> 
    </Grid> 
</UserControl> 

是我得到的組合框的錯誤是錯誤144無法構建項目後投類型「System.String」的對象鍵入「System.Windows.DataTemplate」

我不知道什麼可能導致此錯誤。

+0

移動了以下評論 – 2011-01-21 17:12:47

回答

1

看起來您可能會錯過HorizontalAlignment上的命名空間。添加HorizontalAlignment類型所在的相關名稱空間。

xmlns:local="clr-namespace:Barcode.Views" 

然後修改您的XAML來使用新定義的命名空間的...

... 

<x:Type TypeName="local:HorizontalAlignment"/> 

... 

編輯:

有了這個作爲HorizontalAlignment枚舉類型從框架內,那麼你的代碼應該按原樣工作。我測試了它是確定的,它確實有效;因爲我在我的窗口上放置了一個UserControl的實例,並且工作順利。設置一個空的項目,並從頭開始,看看問題是否仍然存在,因爲您可能有其他因素導致問題。

+0

其實對於這個演示,我試圖讓水平對齊枚舉(左,右,中)作爲一個知道的枚舉。這是多少個演示文稿的寫入。 – 2011-01-21 17:17:43