Bagikan melalui


ModelItem Kelas

Definisi

Mewakili satu item dalam model pengeditan. Item dapat berupa apa pun dari struktur data kompleks hingga warna atau bilangan bulat.

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
Warisan
ModelItem
Turunan
Penerapan

Contoh

ModelItem dapat dianggap sebagai proksi tipis untuk objek di mana ia menunjuk. Pertama-tama tentukan objek Animal sederhana.

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; }   
}  

Kedua, buat instans Animal tersebut dan ModelItem yang merupakan proksi untuknya. Objek kemudian dapat diambil dengan memanggil GetCurrentValue. Kode berikut juga menunjukkan cara menggunakan properti lain yang ditentukan oleh 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");  

Keterangan

Anda dapat mengakses properti item melalui koleksi Properties dan membuat perubahan pada nilai properti.

ModelItem adalah pembungkus di sekitar model data yang mendasar dari perancang. Anda dapat mengakses model yang mendasar melalui metode GetCurrentValue.

Nota

Setiap perubahan yang Anda buat pada objek yang dikembalikan dari metode GetCurrentValue tidak akan tercermin oleh sistem serialisasi dan urungkan perancang.

Konstruktor

ModelItem()

Membuat instans baru kelas ModelItem.

Properti

Attributes

Mendapatkan atribut yang dideklarasikan pada item ini.

Content

Mendapatkan ContentPropertyAttribute item, atau null.

ItemType

Mendapatkan jenis objek yang diwakili item.

Name

Mendapatkan atau mengatur nama atau ID item.

Parent

Mendapatkan item yang merupakan induk item ini.

Parents

Mendapatkan semua orang tua dari item ini.

Properties

Mendapatkan properti publik pada item ini.

Root

Mendapatkan item yang merupakan akar pohon ini.

Source

Mendapatkan properti yang menyediakan nilai ini.

Sources

Mendapatkan semua properti yang menyimpan nilai ini.

View

Mendapatkan DependencyObject yang secara grafis mewakili item ini.

Metode

BeginEdit()

Membuka cakupan pengeditan untuk perancang. Setelah cakupan pengeditan terbuka, semua perubahan di semua objek akan disimpan ke dalam cakupan hingga transaksi selesai atau dikembalikan. Cakupan pengeditan dapat ditumpuk, tetapi harus diterapkan secara berurutan.

BeginEdit(Boolean)

Membuka cakupan pengeditan untuk perancang.

BeginEdit(String, Boolean)

Membuka cakupan pengeditan untuk perancang.

BeginEdit(String)

Membuka cakupan pengeditan untuk perancang. Setelah cakupan pengeditan terbuka, semua perubahan di semua objek akan disimpan ke dalam cakupan hingga transaksi selesai atau dikembalikan. Cakupan pengeditan dapat ditumpuk, tetapi harus diterapkan secara berurutan.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetCurrentValue()

Mengembalikan nilai objek model yang mendasar saat ini yang dibungkus ModelItem.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan representasi string dari objek model dasar yang terkandung dalam item model ini.

Acara

PropertyChanged

Menerapkan INotifyPropertyChanged. Gunakan kejadian ini untuk mendengarkan perubahan pada model. Ini juga digunakan oleh fitur pengikatan data WPF.

Metode Ekstensi

Focus(ModelItem, Int32)

Mengatur fokus keyboard pada item perancang yang ditentukan.

Focus(ModelItem)

Mengatur fokus keyboard pada item perancang yang ditentukan.

GetEditingContext(ModelItem)

Mengambil konteks pengeditan item model yang ditentukan.

GetModelPath(ModelItem)

Mengambil jalur item model yang ditentukan.

IsParentOf(ModelItem, ModelItem)

Mengembalikan nilai yang menunjukkan apakah item perancang pertama yang ditentukan adalah induk dari item perancang kedua yang ditentukan.

Berlaku untuk