3

いくつかのプロパティを持つクラスがあります。それらの1つを変更した後、私は反応して他のプロパティを変更したいと考えています。このアクションは、クラス自体のイベントではなく、UITypeEditor または TypeConverter によって実行する必要があります。

INotifyPropertyChanged を使用してクラス自体でこれを処理したくありません。

テストされていないサンプルコード

public class MyEditor : UITypeEditor
{
    public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
    {
        // change the other property
    }
}

[Editor(typeof(MyEditor), typeof(UITypeEditor))]
class MyClass
{
    public string String1 { get; set; } 
    public string String2 { get; set; } 
    public string String3 { get; set; } 
}

この EditValue には、小さなボタンでエディターのモーダルを表示する機能しかありません...しかし、AfterChange などで通常のテキスト ボックスが必要です。

4

1 に答える 1

0

MSDNのNotifyParentPropertyAttributeを見てください。
参照されているサンプルは、クラス BorderAppearance のプロパティの変更がどのように BorderAppearanceConverter をトリガーするかを示しています。あなたの場合、イベントに反応し、NotifyParentPropertyAttribute を 3 つのプロパティのそれぞれに追加する MyClassConverter が必要になります。

于 2012-09-11T11:24:45.367 に答える