Udostępnij za pośrednictwem


ModelItem Klasa

Definicja

Reprezentuje pojedynczy element w modelu edycji. Element może być dowolny z złożonej struktury danych w dół do koloru lub liczby całkowitej.

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
Dziedziczenie
ModelItem
Pochodne
Implementuje

Przykłady

Element ModelItem może być uważany za cienki serwer proxy dla obiektu, w którym wskazuje. Najpierw zdefiniuj prosty Animal obiekt.

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; }   
}  

Po drugie utwórz dla niego wystąpienie Animal i serwer ModelItem proxy. Następnie można pobrać obiekt przez wywołanie metody GetCurrentValue. Poniższy kod pokazuje również, jak używać innych właściwości zdefiniowanych przez ModelItemprogram .

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");  

Uwagi

Możesz uzyskać dostęp do właściwości elementu za pośrednictwem kolekcji Properties i wprowadzić zmiany w wartościach właściwości.

Element to ModelItem otoka dotycząca bazowego modelu danych projektanta. Dostęp do bazowego GetCurrentValue modelu można uzyskać za pomocą metody .

Uwaga

Wszelkie zmiany wprowadzone w obiekcie zwróconym z GetCurrentValue metody nie zostaną odzwierciedlone przez systemy serializacji i cofania projektanta.

Konstruktory

ModelItem()

Tworzy nowe wystąpienie klasy ModelItem.

Właściwości

Attributes

Pobiera atrybuty zadeklarowane w tym elemencie.

Content

ContentPropertyAttribute Pobiera element lub null.

ItemType

Pobiera typ obiektu reprezentowanego przez element.

Name

Pobiera lub ustawia nazwę lub identyfikator elementu.

Parent

Pobiera element, który jest elementem nadrzędnym tego elementu.

Parents

Pobiera wszystkich rodziców tego elementu.

Properties

Pobiera właściwości publiczne w tym elemencie.

Root

Pobiera element, który jest katalogem głównym tego drzewa.

Source

Pobiera właściwość, która podała tę wartość.

Sources

Pobiera wszystkie właściwości, które przechowują tę wartość.

View

Pobiera element DependencyObject , który graficznie reprezentuje ten element.

Metody

BeginEdit()

Otwiera zakres edycji dla projektanta. Po otwarciu zakresu edycji wszystkie zmiany we wszystkich obiektach zostaną zapisane w zakresie do momentu zakończenia lub cofnięcia transakcji. Zakresy edycji można zagnieżdżać, ale muszą zostać zatwierdzone w kolejności.

BeginEdit(Boolean)

Otwiera zakres edycji dla projektanta.

BeginEdit(String)

Otwiera zakres edycji dla projektanta. Po otwarciu zakresu edycji wszystkie zmiany we wszystkich obiektach zostaną zapisane w zakresie do momentu zakończenia lub cofnięcia transakcji. Zakresy edycji można zagnieżdżać, ale muszą zostać zatwierdzone w kolejności.

BeginEdit(String, Boolean)

Otwiera zakres edycji dla projektanta.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetCurrentValue()

Zwraca bieżącą wartość bazowego obiektu modelu, który jest zawijany ModelItem .

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca reprezentację ciągu obiektu bazowego modelu zawartego w tym elemencie modelu.

Zdarzenia

PropertyChanged

Implementuje INotifyPropertyChanged. To zdarzenie służy do nasłuchiwania zmian w modelu. Jest to również używane przez funkcje powiązania danych WPF.

Metody rozszerzania

Focus(ModelItem)

Ustawia fokus klawiatury na określonym elemencie projektanta.

Focus(ModelItem, Int32)

Ustawia fokus klawiatury na określonym elemencie projektanta.

GetEditingContext(ModelItem)

Pobiera kontekst edycji określonego elementu modelu.

GetModelPath(ModelItem)

Pobiera ścieżkę określonego elementu modelu.

IsParentOf(ModelItem, ModelItem)

Zwraca wartość wskazującą, czy pierwszy określony element projektanta jest elementem nadrzędnym drugiego określonego elementu projektanta.

Dotyczy