0

私の 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」メソッドを呼び出す方法を提案してください。そうすれば、適切な日時パラメーターを DayView に渡すことができます。

4

1 に答える 1

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);
于 2013-07-09T07:18:04.043 に答える