从另一个类看多个字符串属性更改?

时间:2014-01-23 11:50:03

标签: c# properties inotifypropertychanged

我有一些包含多个字符串的类,我想根据字符串的变化提出不同的事件。这是一个例子

class textClass: INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    private string text1;
    public string Text1
    {
        get { return text1; }
        set
        {
            text1 = value;
            NotifyPropertyChanged("Text1");
        }
    }

    private string text2;
    public string Text2
    {
        get { return text2; }
        set
        {
            text2 = value;
            NotifyPropertyChanged("Text2");
        }
    }

    //used as notifier when a string changes within this class
    private void NotifyPropertyChanged(string info)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (PropertyChanged != null)
            handler(this, new PropertyChangedEventArgs(info));
    }
}

所以在我的主课上,如果我使用

txtClass.PropertyChanged += new PropertyChangedEventHandler(txtClass_PropertyChanged);

我怎么不使用“if”语句来评估这样的字符串:

static void txtClass_PropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        if (e.PropertyName == "Text1")
            Console.Write("yadda yadda1");
        if (e.PropertyName == "Text2")
            Console.Write("yadda yadda2");
    }

如果我有70或80个字符串,那么该方法永远不会停止。

还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

使用不同预期字符串的字典并进行查找然后吐出结果值

var dict = new StringDictionary();
dict.Add("Text1", "yadayad");
// add the rest


var val = dict[property_name];
if (val != null)
{
   Console.WriteLine(val);
}