2015-11-12 2 views
1

так что я List<data> dataList, который включает в int idx, string tag, string value с этим кодом:WPF - получить конкретное значение из списка <class>

List<data> dataList = new List<data>(); 
foreach (DataRow row in ds.Tables["info"].Rows) 
{ 
    dataList.Add(new data() { idx = (int)row["idx"], tag = (string)row["tag"], value = (string)row["value"] }); 
} 

Я хочу, чтобы получить конкретное значение из IDX, тег, значение из определенного индекса. Например, если есть 3 строки из idx, tag, value, я хочу поместить все значение в текстовые поля, поэтому я создаю 9 текстовых полей для каждого значения. Я пробовал этот код, но я получил только последние значения строк. И я понимаю, что мой код здесь, чтобы получить всю ценность и только печатать последний.

foreach (data item in dataList) 
{ 
    idx1.Text = item.idx.ToString(); 
    tag1.Text = item.tag.ToString(); 
    value1.Text = item.value.ToString(); 
} 

Но я понимаю, что мой код здесь, чтобы получить всю ценность и напечатать только последний. Как я могу заполнить все мои текстовые поля со всеми значениями в списке данных?

+0

Сколько у вас текстовых полей? Ваш вопрос не очень ясен? Пожалуйста, перефразируйте его, чтобы сделать его более понятным. –

ответ

0

решаемые

Я пробовал сам и dataList[i].idx.ToString() мой ответ на него. поэтому я просто нужно сделать петлю:

for (int i = 0; i < idxBox.Count; i++) 
{ 
    idxBox[i].Text = dataList[i].idx.ToString(); 
    tagBox[i].Text = dataList[i].tag; 
    valueBox[i].Text = dataList[i].value; 
} 

, но до этого я создать 3 Список для IDX, теги и значения

List<TextBox> idxBox = new List<TextBox>(); 
List<TextBox> tagBox = new List<TextBox>(); 
List<TextBox> valueBox = new List<TextBox>(); 

и добавить имена TextBox в нем.

0

Насколько я могу судить, у вас есть динамическое количество DataRows. Создание статического количества TextBoxes для хранения их значений (как и для idx1, tag1 и value1) - это не лучший способ решить вашу проблему.

A ListView может содержать динамическое количество строк, поэтому он намного лучше подходит для вашего случая.

Вы можете определить это следующим образом:

<ListView x:Name="listView"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="Idx" DisplayMemberBinding="{Binding idx}"/> 
      <GridViewColumn Header="Tag" DisplayMemberBinding="{Binding tag}"/> 
      <GridViewColumn Header="Value" DisplayMemberBinding="{Binding value}"/> 
     </GridView> 
    </ListView.View> 
</ListView> 

И добавить элементы, как это:

foreach (data item in dataList) 
{ 
    listView.Items.Add(item); 
} 
+0

да спасибо за ваш ответ и предложение попробовать GridView, но его другой случай. – Mirza

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