2011-01-21 13 views
1

ENUMをコンボボックスにバインドしようとしている場所で動作するプロジェクトで、非常に異常なエラーが発生します。コーディングエラーが発生していないことを確認するために、私は、内蔵ユーザコントロールのサンプルとして、SO Question 58743ageektrappedをサンプルとして使用して新しいusercontrolを作成しました。私は.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> 

私はコンボボックスの上に取得していますエラーは、プロジェクトをビルドした後、「System.Windows.DataTemplate」を入力するタイプ「可能System.String」のオブジェクトをキャストすることができませんエラー144で。

私はこのエラーの原因となるものを紛失しています。

+0

移動したコメント –

答えて

1

HorizontalAlignmentの名前空間が不足しているようです。 HorizontalAlignmentタイプが存在する関連する名前空間を追加します。

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

その後...新たに定義された名前空間を利用するために、あなたのXAMLを変更

... 

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

... 

EDIT:これは、あなたのをフレームワーク内からHorizontalAlignment列挙型であることで

コードはそのまま動作するはずです。私はそれを確かめるためにテストしました。私はUserControlのインスタンスを私のウィンドウに置いたので、それは問題なく動作しました。空のプロジェクトを設定し、最初から始めて、問題を引き起こしている他の要因があるかもしれないので、問題がまだ存在するかどうかを確認してください。

+0

実際にこのデモのために、私は水平に配置された列挙型(左、右、中心)を動作する既知の列挙型にしようとしていました。これは、どのくらいのデモが書かれているかです。 –

+0

@photo_tomあなたのコードをコピー/ペーストしたばかりの追加解説を追加しました。実際には動作します。 –

+0

@Aaron - それは私が見たものです。しかし、このプロジェクトと別の新しいプロジェクトでは、エラーなしでコードを実行することはできません。 –

関連する問題