Witam!
Mam taki kod:
public class A
{
private ObservableCollection<Word> ListOfWords = new ObservableCollection<Word>();
//...
virtual public Word RandomWord()
{
//...
}
}
public class B : A
{
private ObservableCollection<Word> ListOfWordsForTest = new ObservableCollection<Word>();
public B(ObservableCollection<Word> collection) //konstruktor
{
ListOfWordsForTest = collection ;
}
//...
override public Word RandomWord()
{
//...
}
}
public partial class MainWindow : Window
{
public A classA = new A();
public B classB;
public MainWindow()
{
ObservableCollection<Word> collect = A.ListOfWords;
classB = new B(collect);
}
//...
randWord = B.RandomWord();
}
W klasie A tworzę kolekcję o nazwie ListOfWords i wypełniam ją jakimiś elementami. W klasie B również tworzę taką kolekcję o nazwie ListOfWordsForTest (klasa B dziedziczy po klasie A). W MainWindow przypisuję do konstuktora klasy B obiekt, który przechowuje zawartość kolekcji ListOfWords z klasy A, a w konstruktorze klasy B jest on przypisywany do ListOfWordsForTest. Metoda RandomWord() z klasy B zwraca wylosowany element listy i od razu go usuwa. Problem polega na tym, że gdy kasuję element z kolekcji ListOfWordsForTest to usuwa się również ten element z kolekcji ListOfWords. W jaki sposób mogę zrobić usuwanie tylko z listy znajdującej się w klasie B a lista z klasy A żeby była nie ruszona?