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));
}
しかし、比較には定数が必要なため、これはそのままでは機能しません...