次の方法で共有


ModulePropertiesPage.TargetObject プロパティ

定義

構成名と属性を使用する オブジェクトを取得または設定します。

protected:
 property System::Object ^ TargetObject { System::Object ^ get(); void set(System::Object ^ value); };
protected object TargetObject { get; set; }
member this.TargetObject : obj with get, set
Protected Property TargetObject As Object

プロパティ値

構成名と属性にアクセスする オブジェクト。

次の例では、propety を TargetObject 使用してカスタム Microsoft.Web.Management.Client.PropertyGridObject オブジェクトを取得および設定します。

internal class CustomPropertiesInfo : PropertyGridObject {

    private PropertyBag _bag;

    public CustomPropertiesInfo(
        ModulePropertiesPage page,
        PropertyBag bag)
        : base(page) {

        Initialize(bag);
    }

    public CustomPropertiesInfo(
        ModulePropertiesPage page,
        PropertyBag bag,
        bool bRO)
        : base(page, bRO) {

        Initialize(bag);
    }

    internal void Initialize(PropertyBag bag) {
        _bag = bag;
        TrcData();
    }

    bool GetBoolProp(SH.PropInt pi) {

        object o = _bag[pi.Indx];
        if (o == null)
            return false;

        return (bool)o;
    }
//
protected override void ProcessProperties(
    PropertyBag properties) {

    _bag = properties;
    _clone = _bag.Clone(ReadOnly);
    CustomPropertiesInfo info =
        (CustomPropertiesInfo)TargetObject;

    if (info == null) {
        info = new CustomPropertiesInfo(this, _clone);
        TargetObject = info;
    } else {
        info.Initialize(_clone);
    }

    ClearDirty();
}
internal class CustomPropertiesInfo : PropertyGridObject {

    private PropertyBag _bag;

    public CustomPropertiesInfo(
        ModulePropertiesPage page,
        PropertyBag bag)
        : base(page) {

        Initialize(bag);
    }

    public CustomPropertiesInfo(
        ModulePropertiesPage page,
        PropertyBag bag,
        bool bRO)
        : base(page, bRO) {

        Initialize(bag);
    }

    internal void Initialize(PropertyBag bag) {
        _bag = bag;
        TrcData();
    }

    bool GetBoolProp(SH.PropInt pi) {

        object o = _bag[pi.Indx];
        if (o == null)
            return false;

        return (bool)o;
    }

    string GetStrProp(SH.PropInt pi) {

        object o = _bag[pi.Indx];
        if (o == null)
            return String.Empty;

        return (string)o;
    }

    int GetIntProp(SH.PropInt pi) {

        object o = _bag[pi.Indx];
        if (o == null)
            return -1234567;

        return (int)o;
    }

    System.TimeSpan GetTSProp(SH.PropInt pi) {

        object o = _bag[pi.Indx];
        if (o == null)
            return TimeSpan.MinValue;

        return (TimeSpan)o;
    }

    void SetProp(SH.PropInt pi, bool val) {
        _bag[pi.Indx] = val;
    }

    void SetProp(SH.PropInt pi, string val) {
        _bag[pi.Indx] = val;
    }

    void SetProp(SH.PropInt pi, int val) {
        _bag[pi.Indx] = val;
    }

    void SetProp(SH.PropInt pi, TimeSpan val) {
        _bag[pi.Indx] = val;
    }


    /* Add custom props here 
     * Property get/set name is not case sensitive
     * 
     * You can add the attribute [DefaultValue here 
     * but it's does nothing
     */

    public bool BoolProp {
        get {
            return GetBoolProp(SH.boolProp);
        }
        set {
            SetProp(SH.boolProp, value);
        }
    }

    public string strProp {
        get {
            return GetStrProp(SH.strProp);
        }
        set {
            SetProp(SH.strProp, value);
        }
    }

    public string strProp2 {
        get {
            return GetStrProp(SH.strProp2);
        }
        set {
            SetProp(SH.strProp2, value);
        }
    }

    public int intProp {
        get {
            return GetIntProp(SH.intProp);
        }
        set {
            SetProp(SH.intProp, value);
        }
    }

    public System.TimeSpan TSprop {
        get {
            return GetTSProp(SH.TSprop);
        }
        set {
            SetProp(SH.TSprop, value);
        }
    }

注釈

構成オブジェクトは、 クラスから Microsoft.Web.Management.Client.PropertyGridObject 派生します。

適用対象