Я не уверен, возможно ли это и есть ли какие-либо рекомендуемые способы для этого. По сути, я пытаюсь получить представление списка с «зубчатыми» или разными ячейками представления для каждой ячейки в представлении списка. В качестве очень простого примера я пытаюсь динамически отображать кнопку, метку и запись в каждой отдельной строке списка. Вот мой код:
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"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="Chaser.Views.Admin_Detail_MasterDetail_View">
<ContentPage.Content>
<StackLayout Orientation="Vertical"
Spacing="15"
Margin="10">
<Label Text="{Binding ViewTitle, Mode=OneWay}"
FontSize="Large"
TextColor="Red"
FontAttributes="Bold" />
<ListView ItemsSource="{Binding ItemViews, Mode=OneWay}"
SelectionMode="None"
PropertyChanged="ListView_PropertyChanged">
</ListView>
</StackLayout>
</ContentPage.Content>
</ContentPage>
Код позади
public Admin_Detail_MasterDetail_View()
{
InitializeComponent();
DetailViewContext = new Models.Detail_MasterDetail_Model();
DetailViewContext.ViewTitle = "Info";
DetailViewContext.ItemViews = new List<ViewCell>
{
new ViewCell
{
View = new Button
{
Text = "TestButton"
},
},
new ViewCell
{
View = new Label
{
Text = "TestLabel"
}
},
new ViewCell
{
View = new Entry
{
Placeholder = "TestEntry"
}
}
};
BindingContext = DetailViewContext;
}
Примечание. Это также было предпринято с добавлением макетов стека к представлениям, а затем добавлением отдельных элементов в макеты стека, в любом случае я получаю следующее:
Если возможно, я хотел бы иметь привязки команд для каждого вида ячейки, поскольку один тип ячейки может иметь разные действия в контекстном меню, чем другой.
В конце концов, ячейки просмотра будут намного сложнее, чем простая кнопка или метка, но это сделано для концептуальных целей, чтобы увидеть, возможно ли / рекомендуется ли что-то подобное.
После небольшого исследования я вижу, что есть селектор шаблонов данных, который мы можем создать, однако я не уверен, будет ли он применяться в этом сценарии. По крайней мере, я не уверен, позволит ли это настраивать действия контекстного меню для каждой ячейки.
Спасибо за любой вклад по этому поводу!