2016-06-02 11 views
2

Ich habe zwei ähnliche Klassen in C#Wie binden Sie Variablen von zwei Klassen in C#?

public class Property 
{ 
    public string version;    
    public string CCodeName { get; set; } 
    public string CDoc { get; set; } 
    public string ShortName { get; set; } 
} 

public class PropertyFieldsInExcel 
{ 
    public string ShortNames { get; set; } 
    public string CNames { get; set; } 
    public string CDoc { get; set; } 
    public string Version { get; set; }   
} 

Danach habe ich zwei Listen erstellt haben.

static List<PropertyFieldsInExcel> listA = new List<PropertyFieldsInExcel>(); 
public List<Property> listB = new List<Property>(); 

Nun möchte ich eine bidirektionale Bindung zwischen diesen beiden Listen haben. Wie immer, wenn sich etwas in listA ändert, muss das entsprechende Element in listB aktualisiert werden.

Wie wenn, listA[i].ShortName = "abc" dann muss listB[i].ShortName auch den gleichen Wert haben. listA.Add() sollte listB.Add() auslösen und umgekehrt.

Vielen Dank!

+0

Ich habe keine Ahnung, wie es weiter geht. Ich bin irgendwie Amateur in C#. Jede Art von Lösung ist für mich akzeptabel. – Rama

Antwort

-1

Implementieren Sie System.ComponentModel.INotifyPropertyChanged -Interface in Ihren Klassen und verwenden Sie PropertyChanged Event-Handler, um entsprechende Änderungen in Ihren Klassen vorzunehmen. Verwenden Sie System.Collections.ObjectModel.ObservableCollection<> anstelle der Liste.

2

Wie @Amir sagte, müssen Sie die INotifyPropertyChanged Klasse implementieren,

und Ihrem Fall ist das genaue Beispiel aus: INotifyPropertyChanged

Sie sollten auf diesem Beispiel haben einen Versuch.

+0

Ich ging durch den Code in der Verbindung. Ein ähnlicher Code würde funktionieren, wenn ich nur zwei Klassen gebunden hätte. Aber ich muss eine Liste von Objekten binden und ebenso wie Listen einfügen oder hinzufügen. Da habe ich Probleme. – Rama

+0

Mhm haben Sie versucht, die Listen in ObservableCollections zu ändern, weil sie automatisch aktualisiert werden, wenn ein Objekt das Hinzufügen löscht usw. Dies ist eine ähnliche Frage, wie zwei beobachtbare Sammlungen synchronisiert werden: https://social.msdn.microsoft.com/Forums/en- US/2e278e3c-27ab-42b5-8a7b-6828ddbb9caf/how-to-sync-zwei-observable-collection-? Forum = wpf – SeeuD1

Verwandte Themen