Bir gözlemlenebilir koleksiyonu "araçlar" var c wpf, sınıf "araba" "bisiklet" veya "van aiteditboxCollection içindeki nesneyi liste kutusunda seçerek ve düzenlemek için yeni pencere açarak düzenleyin. içeren araç #
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);
Bu araçlar sergilenmektedir araç Sınıfı", her bir devralınan" bir listbox "lbxVehicles"
lbxVehicles.ItemsSource = vehicles;
Ben liste görüntülenen araçlardan biri seçebilmek için gerekiyor ve bir düzenleme butonu tıklandığında yeni bir pencere açmak ve ayrıntıları düzenlemek ve bir düğmeye tıkladığınızda yeni pencerede gözlemlenebilir koleksiyondaki seçili nesne düzenlenecektir.Ne yapmaya çalışıyordum? İlk penceresi:
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();
}
}
sonra pencere 2:
public partial class WindowEdit : Window
{
public object edit = new object();
public WindowEdit()
{
InitializeComponent();
}
Bu denedim sadece ne olduğunu ama yanlış olduğunu eminim. Herhangi bir yardım çok takdir ve ben mümkün o kadar büyük bir olasılıkla açıklamak mümkün olabileceğini öğrenmek için çalışıyorum çünkü
Bir sorun, bu atama şudur: 'winE.edit = selVehicle;' ** SONRA ** Eğer 'winE.ShowDialog (call); '. 'ShowDialog', yöntemin yürütülmesini engelliyor. (= Modal Penceresi). Yani, "winE" iletişim kutusunu kapattığınızda "winE.edit" atanır. Pencereyi açmadan önce onu atamak isteyebilirsiniz. Penceresi –
gösterdiğinde 'winE.edit' null olacak Neyse, bunun için teşekkürler, şimdi değiştirdim, böylece kodu burada güncelleyelim! – Kevin