两个不同的滑块控件在下面触发此功能,它们的名称是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”或者将事件引发到此函数的控件名称。
如何才能获得该消息框上显示的名称,以便我可以基于此做出决定?
答案 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)
做其他的事情