Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Proprietà DataTemplate.DataType

ottiene o imposta il tipo per il quale questo DataTemplate è previsto.

Spazio dei nomi:  System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)
XMLNS per XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[AmbientAttribute]
public Object DataType { get; set; }
<object>
  <object.DataType>
    <Object .../>
  </object.DataType>
</object>
<object DataType="typeName"/>

Valor XAML

typeName

Se il modello è destinato ai dati dell'oggetto, questa proprietà contiene il nome del tipo di oggetto dati (come stringa). Per fare riferimento al nome del tipo di classe, utilizzare Estensione del markup x:Type. Se il modello è destinato a XML i dati, questa proprietà contiene il nome dell'elemento XML. Vedere i commenti della documentazione per informazioni dettagliate su come specificare uno spazio dei nomi non predefinita per l'elemento XML.

Valore proprietà

Tipo: System.Object
il valore predefinito è null.

Questa proprietà molto simile a TargetType proprietà di Style classe. Quando si imposta questa proprietà sul tipo di dati senza specificare x:Key, DataTemplate ottiene applicato automaticamente a oggetti dati di quel tipo. Si noti che quando quel x:Key viene impostato in modo implicito. Pertanto, se si assegna a questo DataTemplatex:Key valore, viene eseguito l'override del valore implicito x:Key e DataTemplate non viene applicato automaticamente.

Si noti inoltre che se si associa un oggetto ContentControl a una raccolta di Task oggetti, ContentControl non utilizza DataTemplate automaticamente. Questo perché l'associazione su un oggetto ContentControl richiede più informazioni di distinguere se si desidera associare a un'intera raccolta o a singoli oggetti. se ContentControl sta rilevando la selezione di un oggetto ItemsControl tipo, è possibile impostare Path proprietà di ContentControl associazione a “/“per indicare che si è interessati all'elemento corrente. per un esempio, vedere Procedura: eseguire l'associazione di una raccolta e visualizzare informazioni in base alla selezione effettuata. In caso contrario, è necessario specificare DataTemplate impostando in modo esplicito ContentTemplate proprietà.

DataType la proprietà è particolarmente utile quando è presente un oggetto CompositeCollection i tipi diversi di oggetti dati.

Se questa proprietà è destinata a un elemento XML che non si trova nello spazio dei nomi predefinito, è necessario anteporre al nome dell'elemento con lo spazio dei nomi o un indicatore dello spazio dei nomi. Per XML esposto tramite LINQ per XML, lo spazio dei nomi viene visualizzato tra parentesi graffe, precedute da una sequenza di escape delle parentesi graffa:

<DataTemplate DataType="{}{http://myNamespace}Details">

Per XML esposto tramite XPath, il nome dell'elemento è preceduto da un indicatore dello spazio dei nomi stabilito da un'istanza di XmlNamespaceMapping:

<DataTemplate DataType="mn:Details">

Nell'esempio riportato di seguito viene illustrato come visualizzare più raccolte ed elementi sotto forma di elenco utilizzando la classe CompositeCollection. In questo esempio, GreekGods è un oggetto ObservableCollection<T> di oggetti personalizzati GreekGod. Vengono definiti modelli di dati in modo che gli oggetti GreekGod e gli oggetti GreekHero vengano visualizzati rispettivamente con un primo piano oro e uno ciano.


<Window Background="Cornsilk"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:c="clr-namespace:SDKSample"
  x:Class="SDKSample.Window1"
  Title="CompositeCollections"
  SizeToContent="WidthAndHeight"
  >
  <Window.Resources>
    <c:GreekGods x:Key="GreekGodsData"/>

    <XmlDataProvider x:Key="GreekHeroesData" XPath="GreekHeroes/Hero">
      <x:XData>
      <GreekHeroes xmlns="">
        <Hero Name="Jason" />
        <Hero Name="Hercules" />
        <Hero Name="Bellerophon" />
        <Hero Name="Theseus" />
        <Hero Name="Odysseus" />
        <Hero Name="Perseus" />
      </GreekHeroes>
      </x:XData>
    </XmlDataProvider>

    <DataTemplate DataType="{x:Type c:GreekGod}">
      <TextBlock Text="{Binding Path=Name}" Foreground="Gold"/>
    </DataTemplate>
    <DataTemplate DataType="Hero">
      <TextBlock Text="{Binding XPath=@Name}" Foreground="Cyan"/>
    </DataTemplate>
	</Window.Resources>
	
  <StackPanel>
    <TextBlock FontSize="18" FontWeight="Bold" Margin="10"
      HorizontalAlignment="Center">Composite Collections Sample</TextBlock>
    <ListBox Name="myListBox" Height="300" Width="200" Background="White">
      <ListBox.ItemsSource>
        <CompositeCollection>
          <CollectionContainer
            Collection="{Binding Source={StaticResource GreekGodsData}}" />
          <CollectionContainer
            Collection="{Binding Source={StaticResource GreekHeroesData}}" />
          <ListBoxItem Foreground="Red">Other Listbox Item 1</ListBoxItem>
          <ListBoxItem Foreground="Red">Other Listbox Item 2</ListBoxItem>
        </CompositeCollection>
      </ListBox.ItemsSource>
    </ListBox>
  </StackPanel>

</Window>


.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft