簡體   English   中英

WPF-從列表中獲取特定值<class>

[英]WPF - Get specific value from List<class>

所以我有List<data> dataList包括int idx, string tag, string value帶有此代碼的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"] });
}

我想從idx,tag,特定索引的值中獲取特定值。 例如,如果idx,tag,value中有3行,我想將所有值都放在textbox-es中,所以我為每個值創建9個textbox-es。 我嘗試了這段代碼,但是我只得到了最后一行的值。 我意識到這里的代碼是為了獲得所有價值,並且只打印最后一個。

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

但是我意識到這里的代碼是獲得所有價值,並且只打印最后一個。 我如何用dataList中的所有值填充我的所有文本框?

據我所知,您擁有動態數量的DataRows。 創建靜態數量的TextBox來容納它們的值(就像使用idx1tag1value1 )不是解決問題的最佳方法。

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;
}

但在此之前,我為idx,tag和value創建了3個列表

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

並在其中添加文本框名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM