如何在两个不同的xaml页面上操作一个对象(将对象从一个xaml页面发送到另一个xaml页面)

时间:2015-04-22 12:12:06

标签: c# windows xaml win-universal-app

任何人都可以帮我使用这个我在xaml和C#中为Windows 8.1制作的通用应用程序吗?我试图寻找这个问题的答案,但我能找到的只是没有好办法做到这一点。如果没有好的方法将对象从一个页面传递到另一个页面,我想听听我有哪些其他选项。

在我的主页面中,我制作了两个对象列表,这是我通过读取文件制作的。 我想在我的大多数其他页面中使用这些对象,但是我无法找到如何操作这些对象列表而不使它们全局化(我听说这不是理想的事情)。

具体我想要完成的事情: 我正在制作一个D& D应用程序,并创建了一个对象列表" Monster"其中包含名称,生命值,攻击等等。我创建了一个名为" Weapons"其中包含名称,损坏等内容 现在我想在我的主页上显示怪物的名称和生命点,当我点击这个怪物时,我想要创建一个新页面,其中显示有关此对象(怪物)的所有内容。如果我改变"生命值"在一个页面上的值(如果这个怪物受到伤害),另一个页面也应该用相同的信息更新。

现在我想将这些列表传递到下一页,这应该可以解决我的问题,但我还没有设法找到这样做的方法。我只是设法将一个简单的字符串从一个页面传递到另一个页面。

//这是我创建对象列表的主菜单,当我按下按钮时,我应该转到下一页。

private void ButtonShowMonster_Click(object sender, RoutedEventArgs e)
        {            
if (this.Frame != null)
            {

this.Frame.Navigate(typeof(OneMonsterPage));
            }
        }

Edit1:仅仅通过创建全局列表对象是最好的方法吗?

1 个答案:

答案 0 :(得分:2)

最简单的方法是拥有一个" global-ish"对象列表,例如"Like" checkbox对象的属性,或者可能是保存值的App类或单例对象。这通常被称为"模型"为您的应用程序。然后,您可以访问不同页面中的数据,并且您可以(例如)简单地在具有static重载的页面之间传递所选对象的索引,这需要额外的参数。

一般情况下,您应该对应用设计的MVVM pattern进行一些研究。