Aracılığıyla paylaş


ModelItem Sınıf

Tanım

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 ContentPropertyAttribute alır veya null.

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

INotifyPropertyChangeduygular. Modeldeki değişiklikleri dinlemek için bu olayı kullanın. Bu, WPF'nin veri bağlama özellikleri tarafından da kullanılır.

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.

Şunlara uygulanır