ModelItem Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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 |
| 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 |
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. |