ModelItem Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa um único item no modelo de edição. Um item pode ser qualquer coisa, desde uma estrutura de dados complexa até uma cor ou inteiro.
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
- Herança
-
ModelItem
- Derivado
- Implementações
Exemplos
O ModelItem pode ser visto como um proxy fino para um objeto para o qual aponta. Primeiro, defina um objeto simples Animal .
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; }
}
Em segundo lugar, cria uma instância disso Animal e um ModelItem que seja um proxy para ele. O objeto pode então ser recuperado chamando GetCurrentValue. O código seguinte também mostra como usar outras propriedades 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");
Observações
Podes aceder às propriedades do item através da sua Properties coleção e fazer alterações aos valores das propriedades.
A ModelItem é um wrapper em torno do modelo de dados subjacente do designer. Pode aceder ao modelo subjacente através do GetCurrentValue método.
Note
Quaisquer alterações que faças a um objeto devolvido pelo GetCurrentValue método não serão refletidas pelos sistemas de serialização e desfazer do designer.
Construtores
| Name | Description |
|---|---|
| ModelItem() |
Cria uma nova instância da ModelItem classe. |
Propriedades
| Name | Description |
|---|---|
| Attributes |
Obtém os atributos declarados neste item. |
| Content |
Obtém o |
| ItemType |
Obtém o tipo de objeto que o item representa. |
| Name |
Obtém ou define o nome ou ID do artigo. |
| Parent |
Obtém o item que é o pai desse item. |
| Parents |
Recebe todos os pais deste artigo. |
| Properties |
Obtém as propriedades públicas deste item. |
| Root |
Obtém o item que é a raiz desta árvore. |
| Source |
Obtém a propriedade que forneceu esse valor. |
| Sources |
Obtém todas as propriedades que mantêm esse valor. |
| View |
Obtém um DependencyObject que representa graficamente este item. |
Métodos
| Name | Description |
|---|---|
| BeginEdit() |
Abre um escopo de edição para o designer. Depois de abrir um âmbito de edição, todas as alterações em todos os objetos serão guardadas no âmbito até que a transação seja concluída ou revertida. Os escopos de edição podem ser aninhados, mas têm de ser comprometidos por ordem. |
| BeginEdit(Boolean) |
Abre um escopo de edição para o designer. |
| BeginEdit(String, Boolean) |
Abre um escopo de edição para o designer. |
| BeginEdit(String) |
Abre um escopo de edição para o designer. Depois de abrir um âmbito de edição, todas as alterações em todos os objetos serão guardadas no âmbito até que a transação seja concluída ou revertida. Os escopos de edição podem ser aninhados, mas têm de ser comprometidos por ordem. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetCurrentValue() |
Devolve o valor atual do objeto modelo subjacente que o ModelItem está a envolver. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma representação string do objeto modelo subjacente contido neste item do modelo. |
evento
| Name | Description |
|---|---|
| PropertyChanged |
Implementa |
Métodos da Extensão
| Name | Description |
|---|---|
| Focus(ModelItem, Int32) |
Define o foco do teclado no item designer especificado. |
| Focus(ModelItem) |
Define o foco do teclado no item designer especificado. |
| GetEditingContext(ModelItem) |
Recupera o contexto de edição do item do modelo especificado. |
| GetModelPath(ModelItem) |
Recupera o caminho do item do modelo especificado. |
| IsParentOf(ModelItem, ModelItem) |
Devolve um valor que indica se o primeiro elemento designer especificado é pai do segundo item designer especificado. |