在Xamarin.Forms中的代码后面创建多个框架

时间:2019-11-09 13:19:53

标签: xaml xamarin xamarin.forms xamarin.android xamarin.ios

我想在代码隐藏中创建多个框架,但是当在循环中创建框架并在内容中添加元素时,只有一个框架具有所有元素,而其他框架为空!为什么?

我的代码是:

$_

结果如下:

enter image description here

2 个答案:

答案 0 :(得分:0)

您在循环的每次迭代中都使用WordDetail的相同实例

相反,每次创建一个新实例

foreach (var dt in _viewModel.Items)
{
  StackLayout WordDetail = new StackLayout();

答案 1 :(得分:0)

我通过复制您的代码在本地复制了您的情况。我通过在foreach中移动WordDetail声明来解决它,如下所示:

StackLayout Words = new StackLayout();

foreach (var dt in _viewModel.Items)
{
    StackLayout WordDetail = new StackLayout();
    AddTextToLabel(nameof(dt.Word), dt.Word, WordDetail);
    var BaseLang = dt.BaseLang;
    AddTextToLabel(nameof(BaseLang.Meaning), BaseLang.Meaning, WordDetail);
    Words.Children.Add(new Frame { BackgroundColor = Color.FromHex("2196F3"), Padding = 5, HasShadow = false, Margin = new Thickness(10, 10, 80, 10), Content = new StackLayout { Children = { WordDetail } } });
}