在我自己的代码中使用事件处理程序的代码

Use Event Handler's code inside my own code

private void OnCarSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        Car tmpCar = (Car)CarLST.SelectedItem;
        VinNumberTB.Text = tmpCar.VinNumber;
        CarMakeTB.Text = tmpCar.CarMake;
        CarTypeCB.SelectedIndex = (int)tmpCar.Type;
        PurchasePriceTB.Text = tmpCar.PurchasePrice.ToString();
        ModelYearCB.SelectedItem = tmpCar.ModelYear;
        MileageTB.Text = tmpCar.Mileage.ToString();
        CarIMG.Source = new BitmapImage(new Uri(String.Format("ms-appx:///Assets/CarImages/{0}.png", tmpCar.Type.ToString())));
    }

这对应于列表框的 selectionChanged 事件处理程序。有没有一种方法可以在我的代码中使用它,就好像它是一种方法一样。例如 SelectionChanged(foo, bar); 基本上,有没有一种方法可以再次使用这段代码,而无需创建另一种方法来保存这些东西。

由于您不使用任何事件参数,您可以将代码提取到一个单独的方法中:

private void OnCarSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    UpdateDisplay();
}


private void UpdateDisplay()
{
    Car tmpCar = (Car)CarLST.SelectedItem;
    VinNumberTB.Text = tmpCar.VinNumber;
    CarMakeTB.Text = tmpCar.CarMake;
    CarTypeCB.SelectedIndex = (int)tmpCar.Type;
    PurchasePriceTB.Text = tmpCar.PurchasePrice.ToString();
    ModelYearCB.SelectedItem = tmpCar.ModelYear;
    MileageTB.Text = tmpCar.Mileage.ToString();
    CarIMG.Source = new BitmapImage(new Uri(String.Format("ms-appx:///Assets/CarImages/{0}.png", tmpCar.Type.ToString())));
}

然后单独调用你需要做的就是:

this.UpdateDisplay();