Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

DataTemplateSelector (Clase)

Proporciona una manera de elegir DataTemplate basado en el objeto de datos y el elemento enlazado a datos.

System.Object
  System.Windows.Controls.DataTemplateSelector

Espacio de nombres:  System.Windows.Controls
Ensamblado:  PresentationFramework (en PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
public class DataTemplateSelector
<DataTemplateSelector .../>

El tipo DataTemplateSelector expone los siguientes miembros.

  NombreDescripción
Método públicoDataTemplateSelectorInicializa una nueva instancia de la clase de DataTemplateSelector .
Arriba
  NombreDescripción
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoGetHashCodeActúa como función hash para un tipo concreto. (Se hereda de Object).
Método públicoGetTypeObtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoSelectTemplateCuando se reemplaza en una clase derivada, devuelve DataTemplate basándose en una lógica personalizada.
Método públicoToStringDevuelve una cadena que representa el objeto actual. (Se hereda de Object).
Arriba

Normalmente, se crea DataTemplateSelector cuando que tiene más de un DataTemplate para el mismo tipo de objetos y desea proporcionar dispone lógica para elegir DataTemplate para aplicar basándose en las propiedades de cada objeto de datos. Observe que si tiene objetos de diferentes tipos puede establecer la propiedad de DataType en DataTemplate. Si hace que ésta no hay necesidad de crear DataTemplateSelector. Además, si tiene objetos del mismo tipo pero con distintas propiedades, también puede usar DataTrigger o un convertidor de datos. Para obtener más información, vea Información general sobre plantillas de datos.

Para crear un selector de plantilla, cree una clase que herede de DataTemplateSelector y reemplace el método de SelectTemplate . Una vez que la clase se define puede asignar una instancia de la clase a la propiedad de selector de plantilla de elemento.

en este ejemplo, origen de enlace es una lista de objetos de Task . una de las propiedades de un objeto de Task es Priority. hay dos plantillas de datos definido, myTaskTemplate y importantTaskTemplate.

Para proporcionar lógica para elegir qué DataTemplate a utilizar basándose en el valor de Priority del objeto de datos, crea una subclase de DataTemplateSelector y reemplace el método de SelectTemplate . En el ejemplo siguiente, el método de SelectTemplate proporciona lógica para devolver la plantilla adecuada en función del valor de la propiedad de Priority . La plantilla que se devuelve se encuentra en los recursos del elemento de la envoltura Window .


using System.Windows;
using System.Windows.Controls;

namespace SDKSample
{
    public class TaskListDataTemplateSelector : DataTemplateSelector
    {
        public override DataTemplate
            SelectTemplate(object item, DependencyObject container)
        {
            FrameworkElement element = container as FrameworkElement;

            if (element != null && item != null && item is Task)
            {
                Task taskitem = item as Task;

                if (taskitem.Priority == 1)
                    return
                        element.FindResource("importantTaskTemplate") as DataTemplate;
                else
                    return
                        element.FindResource("myTaskTemplate") as DataTemplate;
            }

            return null;
        }
    }
}


Podemos declarar entonces TaskListDataTemplateSelector como recurso:


<Window.Resources>


...


<local:TaskListDataTemplateSelector x:Key="myDataTemplateSelector"/>


...


</Window.Resources>


Para utilizar el recurso selector de plantilla, asígnelo a la propiedad de ItemTemplateSelector de ListBox. ListBox llama al método de SelectTemplate de TaskListDataTemplateSelector para cada uno de los elementos de la colección subyacente. La llamada pasa el objeto de datos como parámetro de elemento. DataTemplate devuelto por el método se aplica a ese objeto de datos.


<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}"
         ItemTemplateSelector="{StaticResource myDataTemplateSelector}"
         HorizontalContentAlignment="Stretch"/>


Para obtener el ejemplo completo, vea Introducción al ejemplo de plantillas de datos.

.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

AGREGAR
© 2013 Microsoft. Reservados todos los derechos.