C# 如何在Xamarin中的my ViewModel渲染器中获取表节的TextColor值

C# 如何在Xamarin中的my ViewModel渲染器中获取表节的TextColor值,c#,xamarin,xamarin.forms,xamarin.ios,custom-renderer,C#,Xamarin,Xamarin.forms,Xamarin.ios,Custom Renderer,我正在使用下面的代码将我的CustomTableView的表部分中的文本设置为蓝色(具体为淡蓝色),并将文本设置为粗体 assembly: ExportRenderer(typeof(CustomTableView), typeof(CustomTableViewRenderer))] namespace MyApp.iOS.CustomRenderers { public class CustomTableViewRenderer : TableViewRenderer {

我正在使用下面的代码将我的
CustomTableView
表部分中的文本设置为蓝色(具体为淡蓝色),并将文本设置为粗体

assembly: ExportRenderer(typeof(CustomTableView), typeof(CustomTableViewRenderer))]
namespace MyApp.iOS.CustomRenderers
{
    public class CustomTableViewRenderer : TableViewRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<TableView> e)
        {
            base.OnElementChanged(e);
            if (Control == null)
                return;

            var tableView = Control as UITableView;
            var customTableView = Element as CustomTableView;
            tableView.WeakDelegate = new CustomHeaderTableModelRenderer(customTableView);
        }

        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);
        }


        private class CustomHeaderTableModelRenderer : UnEvenTableViewModelRenderer
        {
            private readonly CustomTableView _customTableView;
            public CustomHeaderTableModelRenderer(TableView model) : base(model)
            {
                _customTableView = model as CustomTableView;
            }

            public override UIView GetViewForHeader(UITableView tableView, nint section)
            {
                return new UILabel()
                {   
                    Text = TitleForHeader(tableView, section),
                    TextColor = UIColor.FromRGB(30, 114, 255), //Issue is here
                    Font = UIFont.BoldSystemFontOfSize(new nfloat(22.0)),
                };
            }
        }
    }
}
assembly:ExportRenderer(typeof(CustomTableView),typeof(CustomTableViewRenderer))]
命名空间MyApp.iOS.CustomRenders
{
公共类CustomTableViewRenderer:TableViewRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(Control==null)
返回;
var tableView=控件作为UITableView;
var customTableView=作为customTableView的元素;
tableView.WeakDelegate=新的CustomHeaderTableModelRenderer(customTableView);
}
受保护的覆盖无效OnElementPropertyChanged(对象发送方,PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(发送方,e);
}
私有类CustomHeaderTableModelRenderer:TableViewModelRenderer
{
私有只读CustomTableView\u CustomTableView;
公共CustomHeaderTableModelRenderer(TableView模型):基础(模型)
{
_customTableView=作为customTableView的模型;
}
公共覆盖UIView GetViewForHeader(UITableView表格视图,第九节)
{
返回新的UILabel()
{   
Text=标题或标题(表格视图,章节),
TextColor=UIColor.FromRGB(30114255),//问题在这里
Font=UIFont.BoldSystemFontOfSize(新的nfloat(22.0)),
};
}
}
}
}

我遇到的问题是,我不想用RGB值为标题中的文本设置
TextColor
,并强制它始终为
DodgerBlue
,而是想从每个
表节的
TextColor
属性中获取颜色,并使用它(这将允许我在其他地方重复使用此
CustomTableView
,因为我可以根据自己的意愿更改颜色)。我非常感谢您能告诉我如何做到这一点。

我可以使用以下代码做到这一点:

private class CustomHeaderTableModelRenderer : UnEvenTableViewModelRenderer
{
    private readonly CustomTableView _customTableView;
    public CustomHeaderTableModelRenderer(TableView model) : base(model)
    {
        _customTableView = model as CustomTableView;
    }
    
    public override UIView GetViewForHeader(UITableView tableView, nint section)
    {
        var tableSectionColor = View.Model.GetSectionTextColor((int) section); // This line gets the Color of the Text in the TitleSection.
        if (tableSectionColor.IsDefault)
        {
            return new UILabel()
            {   
                Text = TitleForHeader(tableView, section),
                Font = UIFont.BoldSystemFontOfSize(new nfloat(22.0)),
            };
        }

        return new UILabel()
        {   
            Text = TitleForHeader(tableView, section),
            TextColor = tableSectionColor.ToUIColor(), //Use the color here.
            Font = UIFont.BoldSystemFontOfSize(new nfloat(22.0)),
        };

    }
}