Lista w liście - DataSource

0

Witam,

Pisze program w którym podpinam listę obiektów pod DataSource komponentu CheckedListBox.

Klasa którą podpinam wygląda tak:

public class TargetControl
{
private List<TargetTest> listTargetClass = new List<TargetTest>();

problem w tym, że interesuje mnie tak naprawdę lista z tej klasy:

public class TargetTest
{
private string nameClass = string.Empty;
private string dll = string.Empty;
private List<string> functions = new List<string>;

... propertisy

Podpinam, więc obiekt klasy TargetTest po to by wyciągnąć listę List<string> functions.
Robię to tak:

((ListBox)this.checkedListBox2).DataSource = null;
((ListBox)this.checkedListBox2).DataSource = controlTest.ListTargetClass;
((ListBox)this.checkedListBox2).DisplayMember = "Function";
((ListBox)this.checkedListBox2).ValueMember = "Function";

Niestety w ten sposób otrzymuję Exception.

W jaki sposób mogę podpiąć listę stringów korzystając z listy tych obiektów? Mogę to zrobić inaczej?

Aktualnie poradziłem sobie poprzez dziedziczenie:

public class TargetTest
{
private string nameClass = string.Empty;
private string dll = string.Empty;

public class TargetTestFunctions : TargetTest
{
private string function = string.Empty;

    public string Function
    {
        get { return this.function; }
    }

public class TargetControl
{
private List<TargetTest> listTargetClass = new List<TargetTest>();
private List<TargetTestFunctions> listTargetFunctions = new List<TargetTestFunctions>();

jednak wydaje mi się, że da się to zrobić lepiej.
Proszę o pomoc.

Pozdrawiam,

0

Wyjaśnij to tak aby ktoś to zrozumiał. Kod umieszczaj w <code class="csharp"> a nie w

```csharp
((ListBox)this.checkedListBox2).DataSource = controlTest.ListTargetClass;
((ListBox)this.checkedListBox2).DisplayMember = "Function";

Nie wiadomo co to jest controlTest ani to "Function"
Pokaż tyle kodu aby było wiadomo o co chodzi.

0

Pokazałem tyle kodu ile trzeba - zaręczam.
Jeśli nie potrafisz w nim się odnaleźć to nie znasz rozwiązania najwidoczniej.

Więcej kodu tylko spowodowałoby mętlik.

0

Mętlik to jest teraz.

0
  1. private List<targettest> listTargetClass = new List<targettest>(); nie równa się kolekcji klasy public class TargetTest tak samo jak targettest i targettestfunctions
  2. Błędna inicjalizacja private List<string> functions = new List<string>;
  3. Bez sensowne nazwy
  4. Co kogo obchodzą prywatne pola/składowe.
  5. Jaki Exception.
  6. Zaręczam że pokazałeś wielkie guzik. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1