C# WPF-从列表中获取特定值<;类别>;
因此,我有C# WPF-从列表中获取特定值<;类别>;,c#,arrays,wpf,database,list,C#,Arrays,Wpf,Database,List,因此,我有List dataList,其中包括int-idx、string-tag、string-value以及以下代码: 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 =
List dataList
,其中包括int-idx、string-tag、string-value
以及以下代码:
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"] });
}
但我意识到,我在这里的代码是获取所有值,只打印最后一个值。如何用数据列表中的所有值填充所有文本框?据我所知,数据行的数量是动态的。创建静态数量的文本框来保存它们的值(就像您使用
idx1
、tag1
和value1
所做的那样)并不是解决问题的最佳方法
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);
}
据我所知,数据行的数量是动态的。创建静态数量的文本框来保存它们的值(就像您使用
idx1
、tag1
和value1
所做的那样)并不是解决问题的最佳方法
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);
}
已解决 我自己也试过了,
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;
}
for(int i=0;i
但在此之前,我为idx、标记和值创建了3个列表
List<TextBox> idxBox = new List<TextBox>();
List<TextBox> tagBox = new List<TextBox>();
List<TextBox> valueBox = new List<TextBox>();
List idxBox=new List();
列表标记框=新列表();
列表值框=新列表();
并在其中添加文本框名称。已解决 我自己也试过了,
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;
}
for(int i=0;i
但在此之前,我为idx、标记和值创建了3个列表
List<TextBox> idxBox = new List<TextBox>();
List<TextBox> tagBox = new List<TextBox>();
List<TextBox> valueBox = new List<TextBox>();
List idxBox=new List();
列表标记框=新列表();
列表值框=新列表();
并在其中添加文本框名称。您有多少个文本框??你的问题不是很清楚?请重新措辞,让它更容易理解。你有多少个文本框??你的问题不是很清楚?请重新措辞,使其更易于理解。是的,感谢您的回答和建议,尝试GridView,但情况不同。是的,感谢您的回答和建议,尝试GridView,但情况不同。