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 Animal bir 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, bunun Animal bir örneğini ve ModelItem bunun proxy'si olan bir örneği oluşturun. Ardından nesnesi çağrılarak GetCurrentValuealınabilir. Aşağıdaki kod, tarafından ModelItemtanı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 koleksiyonu aracılığıyla Properties erişebilir ve özelliklerin değerlerinde değişiklik yapabilirsiniz.

A ModelItem , tasarımcının temel alınan veri modelinin etrafındaki bir sarmalayıcıdır. Yöntemi aracılığıyla temel alınan modele GetCurrentValue erişebilirsiniz.

Note

yönteminden döndürülen bir nesnede GetCurrentValue yaptığınız değişiklikler, tasarımcının serileştirme ve geri alma sistemleri tarafından yansıtılmaz.

Oluşturucular

Name Description
ModelItem()

sınıfının yeni bir örneğini ModelItem oluşturur.

Özellikler

Name Description
Attributes

Bu öğede bildirilen öznitelikleri alır.

Content

ContentPropertyAttribute Öğenin veya nullöğ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 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

Name Description
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()

Sarmalayan temel model nesnesinin ModelItem 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

Name Description
PropertyChanged

uygular INotifyPropertyChanged. 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ı

Name Description
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