如何从对象发件人中提取属性值?

时间:2011-05-04 16:57:02

标签: c# object

两个不同的滑块控件在下面触发此功能,它们的名称是seektomediaposition和seektomediaposition2。

public void seektomediaposition_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
    {

string name = Convert.ToString(e.Source.GetType().GetProperty("Name"));//wont return what i need.
MessageBox.Show(name);
if(name=="seektomediaposition")
  // whatever is the code
if(name=="seektomediaposition2")
  // whatever is the code

    }

e.Source.GetType()将返回Slider类型。

e.Source.GetType()。GetProperty(“Name”)将返回“Name”而不是“seektomediaposition”或者将事件引发到此函数的控件名称。

如何才能获得该消息框上显示的名称,以便我可以基于此做出决定?

2 个答案:

答案 0 :(得分:3)

GetProperty()返回一个PropertyInfo对象。有了它,你可以调用GetValue(e.Source,null)。

public void seektomediaposition_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
    {

string name = Convert.ToString(e.Source.GetType().GetProperty("Name").GetValue(e.Source, null));
MessageBox.Show(name);
if(name=="seektomediaposition")
  // whatever is the code
if(name=="seektomediaposition2")
  // whatever is the code

    }

答案 1 :(得分:1)

你的函数“seektomediaposition_ValueChanged(object sender,RoutedPropertyChangedEventArgs e)”有一个对象发送者。

所以在这里你可以说
    if(sender == seektomediaposition)       做这个     否则if(sender == seektomediaposition2)       做其他的事情