我有一个观察集合“车辆”包含车辆,类“汽车”,“自行车”或“货车的车辆类”,每次从一个继承”,通过在列表框中选择并打开新窗口来编辑它,在observableCollection中编辑对象。 WPF C#
public ObservableCollection<Vehicle> vehicles = new ObservableCollection<Vehicle>();
Car car3 = new Car("Volkswagon", "Golf", "8000", "Red", "2000", "300000", "not so bad", "1.5litre", Car.BodyType.Hatchback);
Car car4 = new Car("Audi", "A6", "19000", "Red", "20014", "20000", "hannnnndy", "2litre", Car.BodyType.Saloon);
vehicles.Add(car1);
vehicles.Add(car2);
vehicles.Add(car3);
vehicles.Add(car4);
Van van1 = new Van("Ford", "transit", "25000", "white", "2008", "100000", "lovely red car", "1.4litre", Van.WheelBase.Medium, Van.VanType.Unlisted);
Van van2 = new Van("Citroen", "berlingo", "2000", "silver", "2006", "20100", "lovely", "1.4litre", Van.WheelBase.Long, Van.VanType.PanelVan);
这些车辆被显示在一个列表框“lbxVehicles”
lbxVehicles.ItemsSource = vehicles;
我需要能够选择显示在列表框中的车辆之一,当我点击编辑按钮,打开一个新窗口并编辑细节,当我点击一个按钮在新窗口中,可观察集合中的选定对象将被编辑。我试图做的是。第一窗口:
private void Button_ClickEdit(object sender, RoutedEventArgs e)
{
Vehicle selVehicle = lbxVehicles.SelectedItem as Vehicle;
if (selVehicle != null)
{
WindowEdit winE = new WindowEdit();
winE.Owner = this;
winE.edit = selVehicle;
winE.ShowDialog();
}
}
然后在窗口2:
public partial class WindowEdit : Window
{
public object edit = new object();
public WindowEdit()
{
InitializeComponent();
}
这正是我试过,但我敢肯定,这是错误的。任何帮助非常感谢,因为我正在努力学习尽可能多的,如果你可以解释任何可能的解决方案,将是伟大的
一个问题,我注意到的是,在分配这一点:'winE.edit = selVehicle;'** **后你调用'winE.ShowDialog( );'。 'ShowDialog'阻止方法的执行。 (=模态窗口)。这意味着,当你关闭'winE'对话框时,'winE.edit'被赋值。您可能想要在打开窗口之前分配它。否则当窗口显示时,你的'winE.edit'将为NULL –
谢谢你,我现在已经改变了,所以我会在这里更新代码! – Kevin