Xaml 显示食物名称的应用程序

Xaml 显示食物名称的应用程序,xaml,xamarin,Xaml,Xamarin,我正在尝试学习,我想创建一个这样的应用程序:当他们单击一个按钮时,它将随机选择一种食物(例如烤土豆),当他们单击食物的标签(或按钮),该食物的配方将在浏览器中打开 我尝试过制作一个列表或某种类型,但不确定如何做到这一点: <local:People x:Food="ArrayFood"> <sys:String Pasta="One" URL="http://food.com/pasta"/> <sys

我正在尝试学习,我想创建一个这样的应用程序:当他们单击一个按钮时,它将随机选择一种食物(例如烤土豆),当他们单击食物的标签(或按钮),该食物的配方将在浏览器中打开

我尝试过制作一个列表或某种类型,但不确定如何做到这一点:

<local:People x:Food="ArrayFood">
                <sys:String Pasta="One" URL="http://food.com/pasta"/>
                <sys:String Corn="Two" URL="http://food.com/corn"/>          
                <sys:String Salsa="Three" URL="http://food.com/Salsa"/>
            </local:People>

我认为您遇到的问题是字符串类型没有意大利面、玉米、莎莎酱或URL的属性

可能最简单的事情是根本不将其存储在资源字典中。我将在ViewModel中存储自定义对象的列表

比如:

public class Food
{
   public Food() {}
   public Food(string name, string url) {Name=name;Url = url;}
   public string Name {get; set;}
   public string Url {get; set;}
}

public class MyViewModel
{
    public List<Food> Foods {get;set;} = new List<Food>
    {
      new Food("Corn", "http://..."),
      new Food("Pasta", "http://blah/pasta" )
    }
    .. other view model stuff ..
}
公共级食品
{
公共食品({}
公共食品(字符串名称,字符串url){name=name;url=url;}
公共字符串名称{get;set;}
公共字符串Url{get;set;}
}
公共类MyViewModel
{
公共列表食物{get;set;}=新列表
{
新食品(“玉米”http://..."),
新食品(“意大利面”http://blah/pasta" )
}
…其他视图模型的东西。。
}

然后将其绑定到列表视图。当他们点击时,然后访问url

Ohh,所以我必须在
.cs
文件中执行此操作。我明白:)我如何从列表中随机选择食物,并在按钮上显示文本?当他们点击按钮时,链接被打开了?想象一下:ViewModel保存着数据。UI绑定到该数据。因此,ViewModel可能具有SelectedFood属性,并且按钮的文本绑定到食物的名称。然后,您的问题(这是一个很好的问题,您可以自己解决)是如何从列表中随机选择一种食物并将其设置到所选食物中。我应该在
MainPage.xaml
中添加什么?只有
我认为您需要后退一步,充分了解MVVM的工作原理。这很好地解释了这一点,应该允许您创建所需的体系结构。是的,刚刚找到
Device.OpenUri
:)