0

monotouch.dialog を使用してテーブルのカスタム セルを完成させようとしていますが、セルの詳細テキスト ラベルの色を除いて、ほぼすべてが整理されています。

GetCell をオーバーライドして、EntryElement セルを次のようにカスタマイズしています。

public class CustomStyledEntryElementPlain : MonoTouch.Dialog.EntryElement
{
    public CustomStyledEntryElementPlain (string _caption, string _value) : base(string.Empty,string.Empty,string.Empty,false)
    {
        KeyboardType = UIKeyboardType.Default;
        Value = _value;
        ReturnKeyType = UIReturnKeyType.Done;
        Caption = _caption;
    }

    public override UITableViewCell GetCell(UITableView tableView) {
        var cell = base.GetCell(tableView);
        cell.BackgroundColor = Resources.XDarkGrayColor;
        cell.TextLabel.TextColor = Resources.XWhiteColor;
        cell.BackgroundView = new UIView (RectangleF.Empty);
        cell.DetailTextLabel.TextColor = UIColor.White; //this line causes the error

        return cell;
    }
}

次に、次のように要素を作成します。

new CustomSection ("Testing"){
                new CustomStyledEntryElementPlain("Test","Test1"),
                new CustomStyledEntryElementPlain("Test","Test2")
            },

ただし、テーブルを表示すると、「System.NullReferenceException がスローされました。オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されます。

これを最初にプロトタイプしたときに、DetailTextLabel のテキストの色が機能していると断言できたはずです。コースの変更をコメントアウトすると、テーブルとセルが正常に表示されますが、テキストは黒ですが (白に変更したい!)

なぜ私がこれを取得しているのか、誰かが何か考えを持っていますか?

4

1 に答える 1

0

DetailTextLabelプロパティは、Cell にそれをサポートするUITableViewCellがある場合にのみ使用できます。プロパティUITableViewCellStyleUITableViewCellドキュメントから:DetailTextLabel

詳細ラベルをサポートする MonoTouch.UIKit.UITableViewCellStyle を使用してセルが作成された場合、UITableViewCell は自動的にセカンダリ (詳細) ラベルを作成します。

セルのスタイルが詳細ラベルをサポートしていない場合、このプロパティは null を返します。

UITableViewCellStyleこのプロパティをサポートするスタイルについては、ドキュメントを参照してください。

于 2013-04-01T19:06:16.290 に答える