ListView 내부에 표가 있고 각 목록보기 항목 내에 2 열 격자를 표시하려고합니다.xamarin 격자 레이아웃에 데이터가 표시되지 않습니다.
그래서 나는 그것이 easyer 것 문질러서 나는 내 했단는 "dynmaci 데이터 구조"를 제공하기 때문에 가능한 한 포괄적로 유지하고 싶은 이후 모델 (JSON)에 그것을 해결하기 위해 whant하지 않는
XAML 뒤에 코드에서이 작업을 수행합니다 :
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Analytics.Views.AnlDataPage">
</ContentPage>
을 꽤 정직 마법이 장면 뒤에 무슨 일이 일어나고 있기 때문이다.
숨김
public partial class AnlDataPage : ContentPage
{
AnlDataModel _model;
public AnlDataPage(WfDataCollection objectData)
{
InitializeComponent();
BindingContext = _model = new AnlDataModel(objectData);
Populate();
}
public void Populate()
{
var AnlDataTemplate = new DataTemplate(() =>
{
var grid = new Grid();
grid.ColumnDefinitions = new ColumnDefinitionCollection
{
new ColumnDefinition {
Width = new GridLength(1, GridUnitType.Star)
},
new ColumnDefinition {
Width = new GridLength(1, GridUnitType.Star)
}
};
if (_model.Columns != null)
{
int i = 0;
foreach (WfDataColumn column in _model.Columns)
{
grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
Label columnLabel = new Label {
Text = _model.ObjectData.Translations[column.LangKey],
};
Label valueLabel = new Label
{
Text = "some value",
};
grid.Children.Add(columnLabel, 0, i);
grid.Children.Add(valueLabel, 1, i);
i++;
}
}
return new ViewCell { View = grid };
});
Content = new StackLayout
{
Margin = new Thickness(20),
Children = {
new ListView { ItemsSource = _model.Data, ItemTemplate = AnlDataTemplate, Margin = new Thickness(0, 20, 0, 0) }
}
};
}
}
출력리스트 뷰가 표시되고, 행의 높이 데이터 좋은 모습이다.
그러나 listItem에는 아무 것도 표시되지 않습니다.
grid.Children.Add(item,left,top)
의 left
및 top
을 생략하면 레이블이 모두 표시되지만 c는 겹칩니다.