Compartir a través de


ModelItem Clase

Definición

Representa un elemento único en el modelo de edición. Un elemento puede ser cualquier cosa, desde una estructura completa de datos hasta un color o un entero.

public ref class ModelItem abstract : System::ComponentModel::INotifyPropertyChanged
public abstract class ModelItem : System.ComponentModel.INotifyPropertyChanged
type ModelItem = class
    interface INotifyPropertyChanged
Public MustInherit Class ModelItem
Implements INotifyPropertyChanged
Herencia
ModelItem
Derivado
Implementaciones

Ejemplos

El ModelItem se puede considerar como un proxy ligero para un objeto al que señala. Defina primero un objeto Animal simple.

public class Animal  
{  
    // simple property  
    public string Name { get; set; }  
    // complex property   
    public Location Residence { get; set; }   
    // list   
    public List<Animal> CloseRelatives { get; set; }  
    // dictionary  
    public Dictionary<string, object> Features { get; set; }   
}  

public class Location  
{  
    public string StreetAddress { get; set; }  
    public string City { get; set; }  
    public string State { get; set; }   
}  

En segundo lugar, cree una instancia de ese Animal y un ModelItem que sea un proxy para él. Así se podrá recuperar el objeto llamando al método GetCurrentValue. El siguiente código también muestra cómo utilizar otras propiedades definidas por ModelItem.

EditingContext ec = new EditingContext();  
var companion1 = new Animal { Name = "Houdini the parakeet" };  
var companion2 = new Animal { Name = "Groucho the fish" };  
var animal = new Animal   
   {  
      Name = "Sasha the pug",  
      Residence = new Location   
      {  
         StreetAddress = "123 Main Street",  
         City = "AnyTown",  
         State = "Washington"  
      },  
      Features = new Dictionary<string, object> {   
         {"noise", "snort" },  
         {"MeanTimeUntilNaps", TimeSpan.FromMinutes(15) }  
      },  
      CloseRelatives = new List<Animal> { companion1, companion2 }   
   };  
ModelTreeManager mtm = new ModelTreeManager(ec);  mtm.Load(animal);  
ModelItem mi = mtm.Root;  

//Testing other properties of the class  
ModelItem root = mtm.Root;  
Assert.IsTrue(root.GetCurrentValue() == animal, "GetCurrentValue() returns same object");  
Assert.IsTrue(root.ItemType == typeof(Animal),"ItemType describes the item");  
Assert.IsTrue(root.Parent == null,"root parent is null");  
Assert.IsTrue(root.Source == null, "root source is null");  
Assert.IsTrue(((List<Animal>)root.Properties["CloseRelatives"].ComputedValue)[0] == companion1,   
   "ComputedValue of prop == actual object");  
Assert.IsFalse(((List<Animal>)root.Properties["CloseRelatives"].ComputedValue)[0] == companion2,   
   "ComputedValue of prop == actual object");  
Assert.AreEqual(root.Properties["Residence"].  
   Value.  
   Properties["StreetAddress"].  
   Value.GetCurrentValue(), "123 Main Street", "get actual value back out");  
Assert.AreEqual(root, root.Properties["Residence"].Parent, "property points to owner");  
ModelItem location = root.Properties["Residence"].Value;  
Assert.AreEqual(root.Properties["Residence"], location.Source, "sources point to the right place");  

Comentarios

Puede acceder a las propiedades del elemento a través de su Properties colección y realizar cambios en los valores de las propiedades.

Un ModelItem es un contenedor que incluye el modelo de datos subyacente del diseñador. Se puede tener acceso al modelo subyacente mediante el método GetCurrentValue.

Nota

Los cambios que realice en un objeto devuelto desde el método GetCurrentValue no se reflejarán por la serialización y los sistemas de deshacer del diseñador.

Constructores

ModelItem()

Crea una nueva instancia de la clase ModelItem.

Propiedades

Attributes

Obtiene los atributos declarados en este elemento.

Content

Obtiene ContentPropertyAttribute del elemento o null.

ItemType

Obtiene el tipo de objeto que representa el elemento.

Name

Obtiene o establece el nombre o identificador del elemento.

Parent

Obtiene el elemento que es el elemento principal de este elemento.

Parents

Obtiene todos los principales de este elemento.

Properties

Obtiene las propiedades públicas de este elemento.

Root

Obtiene el elemento que es la raíz de este árbol.

Source

Obtiene la propiedad que proporcionó este valor.

Sources

Obtiene todas las propiedades que contienen este valor.

View

Obtiene un objeto DependencyObject que represente gráficamente este elemento.

Métodos

BeginEdit()

Abre un ámbito de edición para el diseñador. Después de abrir un ámbito de edición, todos los cambios de todos los objetos se guardarán en el ámbito hasta que se complete o se revierta la transacción. Los ámbitos de edición se pueden anidar y se deben confirmar en orden.

BeginEdit(Boolean)

Abre un ámbito de edición para el diseñador.

BeginEdit(String)

Abre un ámbito de edición para el diseñador. Después de abrir un ámbito de edición, todos los cambios de todos los objetos se guardarán en el ámbito hasta que se complete o se revierta la transacción. Los ámbitos de edición se pueden anidar y se deben confirmar en orden.

BeginEdit(String, Boolean)

Abre un ámbito de edición para el diseñador.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetCurrentValue()

Devuelve el valor actual del modelo de objetos subyacente que encapsula el objeto ModelItem.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto de modelo subyacente contenida en este elemento de modelo.

Eventos

PropertyChanged

Implementa INotifyPropertyChanged. Utilice este evento para escuchar cambios realizados en el modelo. Esta posibilidad también la utilizan las características de enlace de datos de WPF.

Métodos de extensión

Focus(ModelItem)

Establece el foco del teclado en el elemento de diseño especificado.

Focus(ModelItem, Int32)

Establece el foco del teclado en el elemento de diseño especificado.

GetEditingContext(ModelItem)

Recupera el contexto de edición del elemento del modelo especificado.

GetModelPath(ModelItem)

Recupera la ruta de acceso del elemento del modelo especificado.

IsParentOf(ModelItem, ModelItem)

Devuelve un valor que indica si el primer elemento de diseñador especificado es un elemento principal del segundo elemento de diseñador especificado.

Se aplica a