如何调用具有参数的方法(object sender,EventArgs e)

时间:2013-07-09 07:09:38

标签: c# wpf datetime parameter-passing function-calls

在我的wpf应用程序中,我有MonthView类,其中定义了此方法,该类从日历中选择日期并显示该日期的相应dayView窗口。

public void calItemSelectedDate(object sender, SelectionChangedEventArgs e)
    {
        DateTime d;
        if (sender is DateTime)
        {
            d = (DateTime)sender;
        }
        else
        {
            DateTime.TryParse(sender.ToString(), out d);
        }
        DayView Activity = new DayView(d);
        Activity.Show();
        this.Hide();
     }

现在,在我的CustomView类中,我已经创建了dayView的实例,我想要传递所选日期。

DateTime p = Globals._globalController.getMonthViewWindow.calItemSelectedDate(object s, EventArgs e); // here it shows error
DayView d = new DayView(DateTime p);

所以,请建议调用'calItemSelectedDate'方法的方法,这样我就可以将适当的datetime参数传递给我的DayView。

1 个答案:

答案 0 :(得分:1)

引用的方法是事件处理程序,而不是直接调用的最佳选择。 在这种情况下我会做的是:

//A PROPERTY THAT SAVES SELECTED DATE VALUE
public DateTime SelectedDate {get;set;}

//A METHOD THAT SHOWS ACTIVITY 
public void ShowActivity(DateTime date) {
    DayView Activity = new DayView(date);
    Activity.Show();
    this.Hide();
}

public void calItemSelectedDate(object sender, SelectionChangedEventArgs e)
{
    DateTime d;
    if (sender is DateTime)
    {
        d = (DateTime)sender;
    }
    else
    {
        DateTime.TryParse(sender.ToString(), out d);
    }

    SelectedDate = d;

    ShowActivity(d);
 }

并从你想要称呼它的班级:

DateTime p = Globals._globalController.getMonthViewWindow.SelectedDate;
DayView d = new DayView(p);