将XF中的自定义DataTemplate与XAML一起使用
本文关键字:XAML 一起 DataTemplate XF 自定义 | 更新日期: 2024-10-19 15:31:53
此代码正在工作:
<ListView ItemsSource="{Binding ItemsSourcePrimary}" VerticalOptions="FillAndExpand">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout Padding="15, 5, 15, 5" Orientation="Horizontal" HorizontalOptions="FillAndExpand">
<Image Source="{Binding IconSource}" Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" />
<Label Text="{Binding Title}" VerticalOptions="Center" />
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
但我想把一个部分分成这样一个类:
<ListView ItemsSource="{Binding ItemsSourcePrimary}" VerticalOptions="FillAndExpand">
<ListView.ItemTemplate>
<DataTemplate>
<local:MenuListCell Title="{Binding Title}" IconSource="{Binding IconSource}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
但我有一个错误:
未找到文本名称的属性
我在一个xaml文件中用以下代码实现了MenuListCell类:
<?xml version="1.0" encoding="utf-8" ?>
<ViewCell xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Test.MenuListCell">
<ViewCell.View>
<StackLayout Padding="15, 5, 15, 5" Orientation="Horizontal" HorizontalOptions="FillAndExpand">
<Image Source="{Binding IconSource}" Aspect="AspectFit" HorizontalOptions="Center" VerticalOptions="Center" />
<Label Text="{Binding Title}" VerticalOptions="Center" />
</StackLayout>
</ViewCell.View>
</ViewCell>
你有解决方案吗?我们是否需要创建一个c#文件.cs来实现这些属性,或者我们可以在xaml中实现它?
如果始终将MenuListCell
绑定到相同类型的对象,则只需更改
<local:MenuListCell Title="{Binding Title}" IconSource="{Binding IconSource}" />
至
<local:MenuListCell />
单元格的数据内容是您的项目。因此中的Title
<Label Text="{Binding Title}" VerticalOptions="Center" />
是列表项的属性。