将多行添加到TextBlock,WPF应用程序

时间:2014-08-12 01:27:11

标签: wpf list textblock

我正在创建一个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";
    }

2 个答案:

答案 0 :(得分:2)

这是因为你在每次迭代中基本上都在改变它,而你看到的唯一一个是最后一个...

假设您有3个字符串onetwothree,您正在运行并告诉它:&#34; Oy,将其设为一个&#34;,然后&#34;使它成为两个&#34;然后&#34;使它成为三个&#34;,所以它会这样做,并且你最终会得到文本框说:&#34; 3&#34;

您希望将所有字符串作为一个多行字符串,或者使用您可以将该文本块绑定到的字符串的可观察字符集。

您还可以将这些行附加到Inlines的{​​{1}}属性:更多on this msdn page

答案 1 :(得分:1)

我刚刚发现,如果我使用它,它会起作用:

txbDisplayIngredients.Inlines.Add("     + " + ingredientsList[t] + "\n");