ModelItem Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 |
|
| 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 |
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. |