Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF-从列表中获取特定值<;类别>;_C#_Arrays_Wpf_Database_List - Fatal编程技术网

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,但情况不同。