2015-11-17 106 views
1

我正在嘗試學習通用Windows平臺的編程應用程序。我目前正在與ListView合作,並且我在<DataTemplate>中定義了它的佈局,但代碼是一團糟。有沒有辦法在單獨的文件夾中定義<DataTemplate>?我搜索了網絡,但我無法找到解決方案。你能幫我解決嗎?謝謝。ListView DataTemplate在單獨的文件夾中

+1

DataTempalte的外觀如何?例如,您可以在某處定義一個UserControl,然後在資源中引用它。您可以在單獨的資源文件中定義* DataTemplate *,然後在app/page/listview的資源中合併字典。 – Romasz

回答

3

我總是建議爲這種事情創建一個ResourceDictionary。下面是一個例子設置:

創建一個文件夾資源>添加>新建項目>資源字典 「Templates.xaml」

在你App.xaml中添加

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Resources/Templates.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

在Templates.xaml您可以添加任何你想要的模板,比如:

<ResourceDictionary 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:thestory.Resources"> 


<DataTemplate x:Key="ListItemTemplate"> 

</DataTemplate> 

您現在可以使用{StaticResource ListItemTemplate}在任何需要的地方引用此模板

祝你好運!

PS:我真的還建議做同樣的款式和其他應用廣泛的資源,如字體大小,畫筆,背景等

+0

它的工作,謝謝...但我有一個按鈕,此模板與onClick事件,現在不叫。你能說出原因嗎?謝謝:) – miskohut

+0

在代碼後面使用Command和ViewModel代替onClick。 –

0

在datatemplate.xaml定義的DataTemplate:

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <DataTemplate> 

    </DataTemplate> 
</ResourceDictionary> 

在用戶控件請參閱數據表:

<UserControl 
    x:Class="<assemblyName>.Themes.MyUserControl1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:PerpetuumSoft.DataManager.UniApp.UI.Themes" 
    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"> 
    <UserControl.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="ms-appx:///<AssemblyName>/Themes/DataTemplate.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </UserControl.Resources> 
    <Grid> 

    </Grid> 
</UserControl> 
相關問題