1

私はVS/C#のバックグラウンドからMonoTouchを初めて使用し、既存のc#アプリを書き直そうとしています。XMLファイルからList<>にデータを正常にロードする1つのシンプルなMonoTouchアプリを作成し、MonoTouch.Dialogの存在を発見したときに、マスター/詳細コードを追加し始めました。そこで、 http://docs.xamarin.com/ios/tutorials/MonoTouch.Dialogのサンプルコードを使用して新しいプロジェクトを開始し、必要なものに一致するように基本クラスを変更しました。

しかし、DialogViewControllerに既存のList<>を事前入力しようとして立ち往生しています。LoadMoreElementを使用してみましたが、その使用例が見つからず、これが最善の方法かどうかわかりません。

4

2 に答える 2

1

ありがとうアンダース。その間、別の方法を発見しました。

            _rootElement = new RootElement ("Riders") 
        {
            new Section()
            {
                from x in riderList.Riders select (Element) new RootElement(x.Name) 
                {
                    new Section()
                    {
                        new StringElement("Rider",x.Name),
                        new StringElement("Club",x.Club),
                        ....
                        ....

...両方試してみて、どちらが最適かを確認してください。しかし、Section.AddAll() など、提供したリンクで使用されているダイアログ クラスのメソッドを説明するドキュメントを見つけるのに苦労しています。

于 2012-06-17T18:41:53.717 に答える
0

既存のダイアログ ビュー内にリストを作成する場合は、たとえば、空Sectionを作成し、このセクションにリストの要素をRadioElement:s またはCheckboxElement:s として追加できます。同時に選択します。

選択を容易にするために、Group/RadioGroupを作成し、セクションでそれぞれのリスト要素を作成するときにこのグループを参照する必要がある場合があります。

Section同時に選択できる要素は 1 つだけであると仮定して、新しい要素を作成してリスト要素を追加する簡単な例を次に示します。

var list = new List<SomeClass> { ... };

var listGroup = new RadioGroup("grp", 0);
var listSection = new Section();

listSection.AddAll(list.Select(elem => 
    new RadioElement(elem.ToString(), "grp") as Element));

リスト内の要素またはリスト アクションに関連付けられたイベントのより特殊な処理が必要な場合は、RadioElementまたはをサブクラス化することができますCheckboxElementこの SO questionへの回答に、これを行う方法の良い例があります。

于 2012-06-17T08:33:13.567 に答える