2016-11-13 47 views
0

我試圖將一個類綁定到模板。無法解析DataType 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> 

MyApp.Model.Paper是類命名空間。

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

據我所知,我們不能通過namespace.class格式設置x:DataType標記。爲了訪問你自己的自定義類型,你可以映射一個XAML命名空間,這個映射是通過定義一個xmlns前綴來完成的。例如,xmlns:myTypes定義了一個新的XAML名稱空間,該名稱空間通過在標記myTypes:之前加上所有用法來訪問。

因此,請將此映射xmlns:model="using:MyApp.Model"添加到您的標題標記列表中。並更新了x:DataType的XAML代碼,如下所示:<DataTemplate x:DataType="model:Paper" >,然後構建您的項目它將工作。

更多詳情請參考Mapping custom types to XAML namespaces and prefixes