ModelItem Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Düzenleyen tek bir öğeyi temsil eder. Bir öğe, karmaşık bir veri yapısından renkli veya tam sayıya kadar herhangi bir şey olabilir.
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
- Devralma
-
ModelItem
- Türetilmiş
- Uygulamalar
Örnekler
, ModelItem İşaret ettiği bir nesne için ince bir ara sunucu olarak düşünülebilir. Önce basit bir Animal
nesne tanımlayın.
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; }
}
İkinci olarak, Animal
bir ve için proxy olan bir örneğini oluşturun ModelItem . Nesne daha sonra çağırarak alınabilir GetCurrentValue . Aşağıdaki kod ayrıca tarafından tanımlanan diğer özelliklerin nasıl kullanılacağını gösterir 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");
Açıklamalar
Öğenin özelliklerine koleksiyonu aracılığıyla erişebilir Properties ve özelliklerin değerlerinde değişiklik yapabilirsiniz.
, ModelItem Tasarımcının temel alınan veri modeli etrafında bir sarmalayıcıdır. Temel modele yöntemi aracılığıyla erişebilirsiniz GetCurrentValue .
Not
Yönteminden döndürülen bir nesnede yaptığınız tüm değişiklikler, GetCurrentValue tasarımcının serileştirme ve geri alma sistemleri tarafından yansıtılmaz.
Oluşturucular
ModelItem() |
ModelItem sınıfının yeni bir örneğini oluşturur. |
Özellikler
Attributes |
Bu öğe üzerinde belirtilen öznitelikleri alır. |
Content |
Öğesini alır |
ItemType |
Öğenin temsil ettiği nesne türünü alır. |
Name |
Öğenin adını veya KIMLIĞINI alır veya ayarlar. |
Parent |
Bu öğenin üst öğesi olan öğeyi alır. |
Parents |
Bu öğenin tüm üst öğelerini alır. |
Properties |
Bu öğe üzerindeki ortak özellikleri alır. |
Root |
Bu ağacın kökü olan öğeyi alır. |
Source |
Bu değeri sağlayan özelliği alır. |
Sources |
Bu değeri tutan tüm özellikleri alır. |
View |
DependencyObjectBu öğeyi grafiksel olarak temsil eden bir alır. |
Yöntemler
BeginEdit() |
Tasarımcı için bir düzen kapsamı açar. Bir düzen kapsamı açıldıktan sonra, işlem tamamlanana veya geri döndürülünceye kadar tüm nesneler genelindeki tüm değişiklikler kapsama kaydedilir. Kapsamları düzenleyen iç içe olabilir, ancak sırayla yürütülmesi gerekir. |
BeginEdit(Boolean) |
Tasarımcı için bir düzen kapsamı açar. |
BeginEdit(String) |
Tasarımcı için bir düzen kapsamı açar. Bir düzen kapsamı açıldıktan sonra, işlem tamamlanana veya geri döndürülünceye kadar tüm nesneler genelindeki tüm değişiklikler kapsama kaydedilir. Kapsamları düzenleyen iç içe olabilir, ancak sırayla yürütülmesi gerekir. |
BeginEdit(String, Boolean) |
Tasarımcı için bir düzen kapsamı açar. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetCurrentValue() |
Sarmaladığı temeldeki model nesnesinin geçerli değerini döndürür ModelItem . |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Bu model öğesinde bulunan temel model nesnesinin dize gösterimini döndürür. |
Ekinlikler
PropertyChanged |
Uygular |
Uzantı Metotları
Focus(ModelItem) |
Belirtilen Tasarımcı öğesinde klavye odağını ayarlar. |
Focus(ModelItem, Int32) |
Belirtilen Tasarımcı öğesinde klavye odağını ayarlar. |
GetEditingContext(ModelItem) |
Belirtilen model öğesinin düzenlenme bağlamını alır. |
GetModelPath(ModelItem) |
Belirtilen model öğesinin yolunu alır. |
IsParentOf(ModelItem, ModelItem) |
Belirtilen ilk tasarımcı öğesinin belirtilen ikinci tasarımcı öğesinin üst öğesi olup olmadığını gösteren bir değer döndürür. |