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üzenleme modelindeki tek bir öğeyi temsil eder. Bir öğe karmaşık veri yapısından bir renge veya tamsayıya kadar her ş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, işaret ettiği bir nesne için ince bir ara sunucu olarak düşünülebilir. İlk olarak basit bir Animal
nesnesi 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, bu Animal
bir örneğini ve bunun proxy'si olan bir ModelItem oluşturun. Nesne daha sonra GetCurrentValueçağrılarak alınabilir. Aşağıdaki kod, ModelItemtarafından tanımlanan diğer özelliklerin nasıl kullanılacağını da gösterir.
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 Properties koleksiyonu aracılığıyla erişebilir ve özelliklerin değerlerinde değişiklik yapabilirsiniz.
ModelItem, tasarımcının temel alınan veri modelinin etrafındaki bir sarmalayıcıdır. temel alınan modele GetCurrentValue yöntemiyle erişebilirsiniz.
Not
GetCurrentValue yönteminden döndürülen bir nesnede yaptığınız değişiklikler 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 öğede bildirilen öznitelikleri alır. |
Content |
Öğenin |
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 ebeveynlerini alır. |
Properties |
Bu öğedeki genel ö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 barındıran tüm özellikleri alır. |
View |
Bu öğeyi grafik olarak temsil eden bir DependencyObject alır. |
Yöntemler
BeginEdit() |
Tasarımcı için bir düzenleme kapsamı açar. Düzenleme kapsamı açıldıktan sonra, işlem tamamlanana veya geri alınana kadar tüm nesnelerdeki tüm değişiklikler kapsama kaydedilir. Düzenleme kapsamları iç içe yerleştirilmiş olabilir, ancak sırayla işlenmelidir. |
BeginEdit(Boolean) |
Tasarımcı için bir düzenleme kapsamı açar. |
BeginEdit(String, Boolean) |
Tasarımcı için bir düzenleme kapsamı açar. |
BeginEdit(String) |
Tasarımcı için bir düzenleme kapsamı açar. Düzenleme kapsamı açıldıktan sonra, işlem tamamlanana veya geri alınana kadar tüm nesnelerdeki tüm değişiklikler kapsama kaydedilir. Düzenleme kapsamları iç içe yerleştirilmiş olabilir, ancak sırayla işlenmelidir. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetCurrentValue() |
ModelItem sarmalayan temel model nesnesinin geçerli değerini döndürür. |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Bu model öğesinde yer alan temel model nesnesinin dize gösterimini döndürür. |
Ekinlikler
PropertyChanged |
|
Uzantı Metotları
Focus(ModelItem, Int32) |
Klavye odağını belirtilen tasarımcı öğesinde ayarlar. |
Focus(ModelItem) |
Klavye odağını belirtilen tasarımcı öğesinde ayarlar. |
GetEditingContext(ModelItem) |
Belirtilen model öğesinin düzenleme bağlamını alır. |
GetModelPath(ModelItem) |
Belirtilen model öğesinin yolunu alır. |
IsParentOf(ModelItem, ModelItem) |
İlk belirtilen tasarımcı öğesinin, belirtilen ikinci tasarımcı öğesinin üst öğesi olup olmadığını gösteren bir değer döndürür. |