私は車を含む観測可能なコレクション「車」を持って、クラスの「車」「自転車」や「バン」、それぞれがから継承された「車両クラス、オブジェクトをobservableCollectionで編集するには、リストボックスで選択して新しいウィンドウを開いて編集します。 #
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);
C WPFこれらの車両は、表示されていますリストボックス「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;' ** AFTER **あなたは 'winE.ShowDialogを(呼び出し); '。 'ShowDialog'はメソッドの実行をブロックしています。 (=モーダルウィンドウ)。つまり、 'winE'ダイアログを閉じると' winE.edit'が割り当てられます。ウィンドウを開く前にそれを割り当てたいと思うかもしれません。それ以外の場合は、ウィンドウが表示されているときに 'winE.edit'がNULLになります。 –
ありがとう、私は今変更しましたので、ここでコードを更新します! – Kevin