我在 WPF 窗口上有很多按钮。为了避免一遍又一遍地编写相同的单击事件,我希望它们都触发相同的方法并根据我调用的按钮采取适当的操作。
我知道我可以将发件人投射到一个按钮,然后检查名称并从那里路由代码,但是我必须对所有名称进行硬编码,如果按钮在某个阶段重命名,这可能会一团糟。
有什么更好的方法来做到这一点?例如,我可以从枚举中命名按钮吗?或者是否可以通过直接引用按钮来获取检查的按钮名称?
可能是这样的?
private void btnAddTerminatorElement_Click(object sender, RoutedEventArgs e)
{
MsoAutoShapeType shapeType;
switch (((Button)sender).Name)
{
case this.btnAddTerminatorElement.Name:
shapeType = MsoAutoShapeType.msoShapeFlowchartTerminator;
break;
}
CreateChartElement(this.targetWorksheet.Shapes.AddShape(MsoAutoShapeType.msoShapeFlowchartTerminator, 100, 100, 50, 50));
}
但这不起作用,因为比较需要一个常数......