我是VS / C#背景的MonoTouch新手,我正在尝试重写现有的c#应用程序。 我制作了一个简单的MonoTouch应用程序,它成功地将数据加载到List<>从一个XML文件,当我发现MonoTouch.Dialog的存在时,它开始添加Master / Detail代码,看起来它会让我的工作变得更容易。所以我使用http://docs.xamarin.com/ios/tutorials/MonoTouch.Dialog的示例代码开始了一个新项目,更改基本类以匹配我需要的内容。
但我仍然试图用我现有的List<>预填充DialogViewController。我已经尝试使用LoadMoreElement但无法找到它的使用示例,也不知道这是否是最好的方法。
答案 0 :(得分: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()和您提供的链接中使用的其他人。
答案 1 :(得分:0)
如果要在现有对话框视图中创建列表,可以创建一个空的Section
,并在此部分中将列表中的元素添加为RadioElement
:s或{ {3}}:s,取决于您希望能够同时选择的元素数量。
为便于选择,您可能需要创建Group
/ RadioGroup
并在您的部分中创建相应的列表元素时引用此组。
以下是创建新Section
并添加列表元素的快速示例,假设只能同时选择一个元素:
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
。在CheckboxElement
的答案中有一个很好的例子来说明如何做到这一点。