2013-11-19 2 views
1
List<Data> DataList = Data.GetList(); 

foreach (var i in DataList) 
{ 
    Txtblock1.Text = ToString(DataList); 
} 

Я просто пытаюсь добавить содержимое списка пользовательского класса в текстовый блок. список создает несколько разных типов данных, поэтому ToString существует, но это не работает.Отображение списка текстового блока

EDIT: Я должен был извинить, но я должен сделать это для нескольких классов, переопределив ToString разумным?

+1

Care поделиться точно * как * это не работает? – Arran

ответ

0

Есть две вещи, которые нужно сделать здесь:

1) Переопределение метода ToString в классе данных:

public override string ToString() 

там создать строку, содержащую значения вашего объекты, которые вы хотите отобразить. Не забудьте добавить Environment.NewLine в конец.

2) В коде выше изменения следующим образом:

 List<Data> DataList = Data.GetList(); 

    foreach (var i in DataList) 
    { 
     Txtblock1.Text += i.ToString(); 
    } 
+0

спасибо, я дам это go :) –

2

А что-то вроде этого:

Txtblock1.Text = string.Join("; ", DataList.Select(o => o.ToString())); 

, а затем переопределить ToString в Data классе, чтобы обеспечить то, что вы хотите. Разделителем может быть что угодно, это может быть даже Environment.NewLine.

Если вы настаиваете на использовании ToString метод, который вы создали, это может быть такой:

Txtblock1.Text = string.Join("; ", DataList.Select(o => ToString(o))); 
+0

Я не настаиваю на этом, если есть более простой способ, я был бы рад услышать его –

+0

@ user3009379, тем проще будет «переопределить» метод ToString на класса 'Data' и просто вызвать' ToString() 'в экземпляре. –

+0

спасибо, попробуй это сейчас :) –

Смежные вопросы