ModelItem クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
編集モデル内の単一の項目を表します。 項目には、複雑なデータ構想から色や整数まで、あらゆるものがあります。
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
- 継承
-
ModelItem
- 派生
- 実装
例
ModelItem は、これが指示しているオブジェクトのシン プロキシと考えることができます。 まず、単純な Animal
オブジェクトを定義します。
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; }
}
次に、その Animal
のインスタンスと、そのプロキシである ModelItem を作成します。 オブジェクトは、GetCurrentValue を呼び出して取得できます。 次のコードは、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");
注釈
コレクションを使用して項目のプロパティにアクセス Properties し、プロパティの値を変更することができます。
ModelItem は、デザイナーの基になるデータ モデルを包むラッパーです。 基になるモデルには、GetCurrentValue メソッドを使用してアクセスできます。
注意
GetCurrentValue メソッドから返されたオブジェクトに加えた変更は、デザイナーのシリアル化および取り消しシステムに反映されません。
コンストラクター
ModelItem() |
ModelItem クラスの新しいインスタンスを作成します。 |
プロパティ
Attributes |
この項目に対して宣言された属性を取得します。 |
Content |
項目の |
ItemType |
項目が表すオブジェクトの型を取得します。 |
Name |
項目の名前または ID を取得または設定します。 |
Parent |
この項目の親である項目を取得します。 |
Parents |
この項目のすべての親を取得します。 |
Properties |
この項目のパブリック プロパティを取得します。 |
Root |
このツリーのルートである項目を取得します。 |
Source |
この値を提供したプロパティを取得します。 |
Sources |
この値を保持するすべてのプロパティを取得します。 |
View |
この項目をグラフィックで表現する DependencyObject を取得します。 |
メソッド
BeginEdit() |
デザイナーの編集スコープを開きます。 編集スコープが開かれた後、すべてのオブジェクトの変更はすべて、トランザクションが完了するか、元に戻されるまでスコープに保存されます。 編集スコープは入れ子にできますが、一定の順序でコミットする必要があります。 |
BeginEdit(Boolean) |
デザイナーの編集スコープを開きます。 |
BeginEdit(String) |
デザイナーの編集スコープを開きます。 編集スコープが開かれた後、すべてのオブジェクトの変更はすべて、トランザクションが完了するか、元に戻されるまでスコープに保存されます。 編集スコープは入れ子にできますが、一定の順序でコミットする必要があります。 |
BeginEdit(String, Boolean) |
デザイナーの編集スコープを開きます。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetCurrentValue() |
ModelItem がラップしている、基になるモデル オブジェクトの現在の値を返します。 |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
ToString() |
このモデル アイテムに格納されている、基になるモデル オブジェクトの文字列表現を返します。 |
events
PropertyChanged |
|
拡張メソッド
Focus(ModelItem) |
指定したデザイナー項目についてキーボード フォーカスを設定します。 |
Focus(ModelItem, Int32) |
指定したデザイナー項目についてキーボード フォーカスを設定します。 |
GetEditingContext(ModelItem) |
指定したモデル アイテムの編集コンテキストを取得します。 |
GetModelPath(ModelItem) |
指定したモデル アイテムのパスを取得します。 |
IsParentOf(ModelItem, ModelItem) |
指定した最初のデザイナー項目が、指定した 2 番目のデザイナー項目の親であるかどうかを示す値を取得します。 |