ListView中的Xamarin CustomRenderer

时间:2018-01-08 10:50:55

标签: c# listview xamarin custom-renderer

我有一个ListView,其中包含自定义视图ViewCell

此自定义视图是Label,用于呈现HTML内容。

所有工作都有效,除非ViewCell退出屏幕时标签丢失了HTML格式并显示HTML标记。

enter image description here

这是IOS中的自定义渲染器(在Android上也是同样的问题):

[assembly: ExportRenderer(typeof(LabelHtmlView), typeof(LabelHtmlCustomRenderer))]

namespace SgatMobileV2.iOS {
    public class LabelHtmlCustomRenderer : LabelRenderer {

    protected override void OnElementChanged(ElementChangedEventArgs<Label> e) {
        base.OnElementChanged(e);

        var View = (LabelHtmlView)Element;
        if (View == null) return;

        var Attribute = new NSAttributedStringDocumentAttributes();
        var NsError = new NSError();

        Attribute.DocumentType = NSDocumentType.HTML;

        Control.AttributedText = new NSAttributedString(View.Text, Attribute, ref NsError);

    }

}

}

这是ListView代码:

<ListView x:Name="ListaRigheWo" CachingStrategy="RecycleElement"
    HasUnevenRows="True" SeparatorVisibility="Default" 
    ItemsSource="{Binding ListaWORighe}">
    [...]
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <Grid>
                    [...]
                        <view:LabelHtmlView 
                          Text="{Binding DescrizioneIntervento}" Grid.Row="1" Grid.Column="2" 
                          Grid.ColumnSpan="4" Style="{StaticResource LblValore}" />

我该如何解决这个问题?

谢谢!

0 个答案:

没有答案