ModelItem Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 |
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 |
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. |