ModelItem Klas

Definitie

Vertegenwoordigt één item in het bewerkingsmodel. Een item kan alles zijn, van een complexe gegevensstructuur tot een kleur of geheel getal.

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
Overname
ModelItem
Afgeleid
Implementeringen

Voorbeelden

De ModelItem kan worden beschouwd als een dunne proxy voor een object waarop het wijst. Definieer eerst een eenvoudig Animal object.

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

Maak ten tweede een exemplaar hiervan Animal en een ModelItem proxy hiervoor. Het object kan vervolgens worden opgehaald door aan te roepen GetCurrentValue. De volgende code laat ook zien hoe u andere eigenschappen gebruikt die zijn gedefinieerd door 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");

Opmerkingen

U kunt de eigenschappen van het item openen via Properties de verzameling en wijzigingen aanbrengen in de waarden van de eigenschappen.

A ModelItem is een wrapper rond het onderliggende gegevensmodel van de ontwerpfunctie. U hebt toegang tot het onderliggende model via de GetCurrentValue methode.

Note

Wijzigingen die u aanbrengt in een object dat door de GetCurrentValue methode wordt geretourneerd, worden niet weerspiegeld door de serialisatie- en ongedaan maken van systemen van de ontwerpfunctie.

Constructors

Name Description
ModelItem()

Hiermee maakt u een nieuw exemplaar van de ModelItem klasse.

Eigenschappen

Name Description
Attributes

Hiermee haalt u de kenmerken op die voor dit item zijn gedeclareerd.

Content

Hiermee wordt het ContentPropertyAttribute item of null.

ItemType

Hiermee haalt u het type object op dat het item voorstelt.

Name

Hiermee haalt u de naam of id van het item op of stelt u deze in.

Parent

Hiermee haalt u het item op dat het bovenliggende item is.

Parents

Haalt alle ouders van dit item op.

Properties

Hiermee haalt u de openbare eigenschappen van dit item op.

Root

Hiermee haalt u het item op dat de hoofdmap van deze boomstructuur is.

Source

Hiermee haalt u de eigenschap op die deze waarde heeft opgegeven.

Sources

Hiermee haalt u alle eigenschappen op die deze waarde bevatten.

View

Hiermee haalt u een DependencyObject grafische weergave van dit item op.

Methoden

Name Description
BeginEdit()

Hiermee opent u een bewerkingsbereik voor de ontwerpfunctie. Nadat een bewerkingsbereik is geopend, worden alle wijzigingen in alle objecten opgeslagen in het bereik totdat de transactie is voltooid of teruggezet. Bewerkingsbereiken kunnen worden genest, maar moeten op volgorde worden doorgevoerd.

BeginEdit(Boolean)

Hiermee opent u een bewerkingsbereik voor de ontwerpfunctie.

BeginEdit(String, Boolean)

Hiermee opent u een bewerkingsbereik voor de ontwerpfunctie.

BeginEdit(String)

Hiermee opent u een bewerkingsbereik voor de ontwerpfunctie. Nadat een bewerkingsbereik is geopend, worden alle wijzigingen in alle objecten opgeslagen in het bereik totdat de transactie is voltooid of teruggezet. Bewerkingsbereiken kunnen worden genest, maar moeten op volgorde worden doorgevoerd.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetCurrentValue()

Retourneert de huidige waarde van het onderliggende modelobject dat de ModelItem wrapping is.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeksweergave van het onderliggende modelobject in dit modelitem.

gebeurtenis

Name Description
PropertyChanged

Implementeert INotifyPropertyChanged. Gebruik deze gebeurtenis om te luisteren naar wijzigingen in het model. Dit wordt ook gebruikt door de gegevensbindingsfuncties van WPF.

Extensiemethoden

Name Description
Focus(ModelItem, Int32)

Hiermee stelt u de toetsenbordfocus in op het opgegeven ontwerpitem.

Focus(ModelItem)

Hiermee stelt u de toetsenbordfocus in op het opgegeven ontwerpitem.

GetEditingContext(ModelItem)

Hiermee wordt de bewerkingscontext van het opgegeven modelitem opgehaald.

GetModelPath(ModelItem)

Hiermee wordt het pad van het opgegeven modelitem opgehaald.

IsParentOf(ModelItem, ModelItem)

Retourneert een waarde die aangeeft of het eerste opgegeven ontwerpitem een bovenliggend item is van het tweede opgegeven ontwerpitem.

Van toepassing op