ModelItem Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egyetlen elemet jelöl a szerkesztőmodellben. Egy elem bármilyen lehet egy összetett adatstruktúrától kezdve egészen egy színig vagy egész számig.
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
- Öröklődés
-
ModelItem
- Származtatott
- Megvalósítás
Példák
Ez ModelItem úgy is felfogható, mint egy olyan objektum vékony proxyja, amelyre mutat. Először definiáljon egy egyszerű Animal objektumot.
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; }
}
Másodszor hozzon létre egy ilyen példányt Animal , és egy ModelItem proxyt. Az objektum ezután lekérhető a hívással GetCurrentValue. Az alábbi kód azt is bemutatja, hogyan használhatja a által definiált ModelItemegyéb tulajdonságokat.
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");
Megjegyzések
Az elem tulajdonságait a gyűjteményen keresztül Properties érheti el, és módosíthatja a tulajdonságok értékeit.
Az A ModelItem egy burkoló a tervező mögöttes adatmodellje körül. A mögöttes modellt a metóduson keresztül érheti GetCurrentValue el.
Note
A metódusból GetCurrentValue visszaadott objektumokon végzett módosítások nem jelennek meg a tervező szerializálása és visszavonása során.
Konstruktorok
| Name | Description |
|---|---|
| ModelItem() |
Létrehozza az osztály új példányát ModelItem . |
Tulajdonságok
| Name | Description |
|---|---|
| Attributes |
Lekéri az elemen deklarált attribútumokat. |
| Content |
Lekéri az |
| ItemType |
Lekéri az elem által képviselt objektumtípust. |
| Name |
Lekéri vagy beállítja az elem nevét vagy azonosítóját. |
| Parent |
Lekéri az elem szülőelemét. |
| Parents |
Lekéri az elem minden szülője. |
| Properties |
Lekéri az elem nyilvános tulajdonságait. |
| Root |
Lekéri a fa gyökerét képező elemet. |
| Source |
Lekéri az értéket megadó tulajdonságot. |
| Sources |
Lekéri az értéket tartalmazó összes tulajdonságot. |
| View |
DependencyObject Lekéri az elemet grafikusan ábrázoló képet. |
Metódusok
| Name | Description |
|---|---|
| BeginEdit() |
Megnyitja a tervező szerkesztési hatókörét. A szerkesztési hatókör megnyitása után a rendszer az összes objektum módosításait a hatókörbe menti a tranzakció befejezéséig vagy visszaállításáig. A szerkesztési hatókörök beágyazhatók, de sorrendben kell véglegesíteni. |
| BeginEdit(Boolean) |
Megnyitja a tervező szerkesztési hatókörét. |
| BeginEdit(String, Boolean) |
Megnyitja a tervező szerkesztési hatókörét. |
| BeginEdit(String) |
Megnyitja a tervező szerkesztési hatókörét. A szerkesztési hatókör megnyitása után a rendszer az összes objektum módosításait a hatókörbe menti a tranzakció befejezéséig vagy visszaállításáig. A szerkesztési hatókörök beágyazhatók, de sorrendben kell véglegesíteni. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetCurrentValue() |
A burkoló alapul szolgáló modellobjektum ModelItem aktuális értékét adja vissza. |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
A modellelemben található mögöttes modellobjektum sztringképét adja vissza. |
esemény
| Name | Description |
|---|---|
| PropertyChanged |
Implementálja |
Bővítő metódusok
| Name | Description |
|---|---|
| Focus(ModelItem, Int32) |
Beállítja a billentyűzet fókuszát a megadott tervezőelemen. |
| Focus(ModelItem) |
Beállítja a billentyűzet fókuszát a megadott tervezőelemen. |
| GetEditingContext(ModelItem) |
Lekéri a megadott modellelem szerkesztési környezetét. |
| GetModelPath(ModelItem) |
Lekéri a megadott modellelem elérési útját. |
| IsParentOf(ModelItem, ModelItem) |
Olyan értéket ad vissza, amely jelzi, hogy az első megadott tervezőelem a második megadott tervezőelem szülője-e. |