2016-11-13 21 views
0

クラスをテンプレートにバインドしようとしています。 MyApp.Model.Paperデータ型MyApp.Model.Paperを解決できません。

<UserControl 
    x:Class="MyApp.Controls.PaperSelectControl" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:MyApp.Controls" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    d:DesignHeight="300" 
    d:DesignWidth="400"> 

    <Grid> 
     <ScrollViewer> 
      <GridView x:Name="paperGrid" 
         ItemsSource="{x:Bind Papers}" 
         Width="400" Height="300" > 
       <GridView.ItemTemplate > 
        <DataTemplate x:DataType="MyApp.Model.Paper" > 
         <TextBlock Text="{x:Bind Color}"/> 
        </DataTemplate> 
       </GridView.ItemTemplate> 
      </GridView> 
     </ScrollViewer> 
    </Grid> 
</UserControl> 

は、クラスの名前空間です。

namespace MyApp.Model { 
    public class Paper { 
     public string Name { get; set; } 
     public string Color { get; set; } 
     public string Thumb { get; set; } 
    } 
} 

しかし、私は常に

がデータ型MyApp.Model.Paper

エラー

私は誰かが私はこの問題を解決するために役立つことを願っを解決できません取得します。ありがとうございました。

+0

XAMLファイルのヘッダーにある「x」は何を指していますか? – user3185569

+0

完全なヘッダーマークアップを追加しました。 @ user3185569 –

答えて

1

私が知る限り、x:DataTypeマークアップをnamespace.classフォーマットで設定することはできません。独自のカスタムタイプにアクセスするにはXAML名前空間をマップできますが、このマッピングは接頭辞xmlnsを定義することによって行われます。たとえば、xmlns:myTypesは、すべての用途にトークンmyTypes:を接頭辞として付けることによってアクセスされる新しいXAML名前空間を定義します。

このマッピングxmlns:model="using:MyApp.Model"をヘッダーマークアップリストに追加してください。そして、x:DataTypeのXAMLコードを<DataTemplate x:DataType="model:Paper" >として更新してから、それが動作するようにプロジェクトを構築してください。

詳細はMapping custom types to XAML namespaces and prefixesを参照してください。

関連する問題