我正在创建一个WPF应用程序,我想将ingredientsList中的字符串添加到TextBlock中。但是从我下面的代码中,似乎Textblock只调整了列表中的最后一个字符串。如何将列表中的所有字符串显示到文本框?或任何建议使用其他控件而不是TextBlock?
TextBlock txbDisplayIngredients = new TextBlock ();
List<string> ingredientsList = new List<string>();
for (int t = 0; t < ingredientsList.Count(); t++)
{
txbDisplayIngredients.Text = ingredientsList[t] + "\n";
}
答案 0 :(得分:2)
这是因为你在每次迭代中基本上都在改变它,而你看到的唯一一个是最后一个...
假设您有3个字符串one
,two
,three
,您正在运行并告诉它:&#34; Oy,将其设为一个&#34;,然后&#34;使它成为两个&#34;然后&#34;使它成为三个&#34;,所以它会这样做,并且你最终会得到文本框说:&#34; 3&#34;
您希望将所有字符串作为一个多行字符串,或者使用您可以将该文本块绑定到的字符串的可观察字符集。
您还可以将这些行附加到Inlines
的{{1}}属性:更多on this msdn page
答案 1 :(得分:1)
我刚刚发现,如果我使用它,它会起作用:
txbDisplayIngredients.Inlines.Add(" + " + ingredientsList[t] + "\n");