ModelItem Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar ett enskilt objekt i redigeringsmodellen. Ett objekt kan vara allt från en komplex datastruktur till en färg eller ett heltal.
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
- Arv
-
ModelItem
- Härledda
- Implementeringar
Exempel
Kan ModelItem ses som en tunn proxy för ett objekt där det pekar. Definiera först ett enkelt Animal objekt.
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; }
}
För det andra skapar du en instans av den Animal och en ModelItem som är en proxy för den. Objektet kan sedan hämtas genom att anropa GetCurrentValue. Följande kod visar också hur du använder andra egenskaper som definieras av 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");
Kommentarer
Du kan komma åt objektets egenskaper via samlingen Properties och göra ändringar i egenskapernas värden.
A ModelItem är en omslutning runt designerns underliggande datamodell. Du kan komma åt den underliggande modellen via GetCurrentValue -metoden.
Note
Alla ändringar du gör i ett objekt som returneras från GetCurrentValue metoden återspeglas inte av designerns serialiserings- och ångra-system.
Konstruktorer
| Name | Description |
|---|---|
| ModelItem() |
Skapar en ny instans av ModelItem klassen. |
Egenskaper
| Name | Description |
|---|---|
| Attributes |
Hämtar attributen som deklarerats för det här objektet. |
| Content |
|
| ItemType |
Hämtar den typ av objekt som objektet representerar. |
| Name |
Hämtar eller anger objektets namn eller ID. |
| Parent |
Hämtar objektet som är överordnat för det här objektet. |
| Parents |
Hämtar alla föräldrar till det här objektet. |
| Properties |
Hämtar de offentliga egenskaperna för det här objektet. |
| Root |
Hämtar det objekt som är roten i det här trädet. |
| Source |
Hämtar egenskapen som angav det här värdet. |
| Sources |
Hämtar alla egenskaper som innehåller det här värdet. |
| View |
Hämtar en DependencyObject som grafiskt representerar det här objektet. |
Metoder
| Name | Description |
|---|---|
| BeginEdit() |
Öppnar ett redigeringsomfång för designern. När ett redigeringsomfång är öppet sparas alla ändringar i alla objekt i omfånget tills transaktionen har slutförts eller återställts. Redigeringsomfång kan kapslas, men måste checkas in i ordning. |
| BeginEdit(Boolean) |
Öppnar ett redigeringsomfång för designern. |
| BeginEdit(String, Boolean) |
Öppnar ett redigeringsomfång för designern. |
| BeginEdit(String) |
Öppnar ett redigeringsomfång för designern. När ett redigeringsomfång är öppet sparas alla ändringar i alla objekt i omfånget tills transaktionen har slutförts eller återställts. Redigeringsomfång kan kapslas, men måste checkas in i ordning. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetCurrentValue() |
Returnerar det aktuella värdet för det underliggande modellobjektet ModelItem som omsluts. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en strängrepresentation av det underliggande modellobjektet som finns i det här modellobjektet. |
Händelser
| Name | Description |
|---|---|
| PropertyChanged |
Implementerar |
Tilläggsmetoder
| Name | Description |
|---|---|
| Focus(ModelItem, Int32) |
Anger tangentbordsfokus på det angivna designerobjektet. |
| Focus(ModelItem) |
Anger tangentbordsfokus på det angivna designerobjektet. |
| GetEditingContext(ModelItem) |
Hämtar redigeringskontexten för det angivna modellobjektet. |
| GetModelPath(ModelItem) |
Hämtar sökvägen till det angivna modellobjektet. |
| IsParentOf(ModelItem, ModelItem) |
Returnerar ett värde som anger om det första angivna designerobjektet är överordnat till det andra angivna designerobjektet. |