如何在Xamarin.Forms中围绕ImageCell设置边距?

时间:2017-10-29 15:57:03

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

我想在ListView的Image单元格项周围留出一些空间:

<StackLayout>
    <ListView ItemsSource="{Binding Items}" HasUnevenRows="True">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ImageCell Text="{Binding Title}" ImageSource="{Binding Image}" TextColor="Black" DetailColor="Gray"/>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</StackLayout>

但是ImageCell没有可用的保证金属性?

修改

在发布问题之前,我做了cvanbeek的建议:

<DataTemplate>
   <StackLayout Padding="5">
       <ImageCell Text="{Binding Title}" ImageSource="{Binding Image}" TextColor="Black" DetailColor="Gray"/>
   </StackLayout>
</DataTemplate>

但我得到了这个例外:

  

未处理的例外:

     

System.InvalidCastException:指定的强制转换无效。

在MainActivity.cs中的OnCreate方法

1 个答案:

答案 0 :(得分:3)

DataTemplate definition

只有View可以放在DataTemplate内,但StackLayoutLayout

使用ViewCell,它更灵活,更可控。

<ListView >
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout Padding="20" Orientation="Horizontal" >
                    <Label Margin="20" Text="123"/>
                    <Image Source="Assets/StoreLogo.png"/>
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>