Cześć,
mam klasę, w której znajduje się kilka wartości string i lista. Chciałbym wyświetlić ją na DataGrid, jednak nie mogę tego zrobić właśnie ze względu na tą listę. Mam dwa pomysły, jak to rozwiązać:
- utworzyć drugi DataGrid do wyświetlania elementów listy - w momencie, gdy użytkownik zaznaczy obiekt (wiersz), który ma listę różną od null, aktywny stawałby się drugi DataGrid (zobrazowałem to na załączonym schemacie)
- użyć czegoś innego zamiast DataGrid (czego?) - w tej sytuacji, gdy użytkownik zaznaczyłby taki obiekt, który ma listę różną od null, wyświetlałaby się zagnieżdżona część DataGrid (podejrzewam, że byłoby to trudniejsze do zrealizowania, niż pierwsza możliwość)
W jaki sposób mogę utworzyć binding pomiędzy takim obiektem klasy zawierającej listę innych obiektów?
Aktualnie otrzymuję wyjątek:
StackOverflowException was unhandled
An unhandled exception of type 'System.StackOverflowException' occurred in WpfApplication1.exe
$exception {Cannot evaluate expression because the current thread is in a stack overflow state.} System.Exception {System.StackOverflowException} this null WpfApplication1.Parameters value Cannot obtain value of local or argument 'value' as it is not available at this instruction pointer, possibly because it has been optimized away. System.Collections.Generic.List<string>
Następuje on w tym miejscu:
#region Properties
public string ParameterName { get; set; }
public string DefaultValue { get; set; }
public ExternTypes ParameterType { get; set; }
public List<String> EnumValues
{
get
{
return EnumValues;
}
set
{ // nieobsłużony wyjątek
EnumValues = value;
}
}
#endregion
Zaś obiekt wiążę z DataGrid w ten sposób:
// utwórz testowy obiekt i powiąż z DataGrid
Settings testSettings = new Settings("Test");
myTestScenarioUC.dgrNumericalParameters.ItemsSource = testSettings.Parameters;
Cały projekt również w załączniku. Usunąłem z niego wszystkie części, które nie są związane z problemem, jednak z zachowaniem struktury mojego programu.
Pozdrawiam!