单点触控集属性不保留属性值

本文关键字:属性 保留 单点触 | 更新日期: 2023-09-27 18:35:25

在我的MonoDevelop项目中,我有一个iPhone应用程序。我有两种不同的看法。每个视图都包含一个 UITable。对于视图 1,我将类 1 挂接到 UITable 作为数据源 1。对于视图 2,我有一个类 2 作为数据源 2 连接。这两个类(即数据源)都为表提供数据。视图 2 也有一个自定义单元格,因此异步加载。

我使用 linq to XML 从 2 个 XML 文件中获取数据。一切正常,数据加载很棒。我需要知道的是,根据视图 1 中的选择在数据源 2 中加载数据。为此,我需要将一个 ID 从视图 1 传递到类(数据源)2。问题。

我已经尝试了几乎所有我知道的东西,但我就是做不好。

根据我正确的解决方案:

我创建了另一个名为 SelectedRound 的类,具有两个属性。法典:

using System;
namespace xxxxx
{
    public class SelectedRound
    {
        public string RoundID { get; set; }
        public string Date { get; set; }
    }
}

当我在类 1 中设置 RoundID 时,我可以在类 1 中访问它。但是,尝试在类 2 中访问它时,不返回任何内容或 null。为什么会这样?可能是因为类(数据源)2正在异步加载吗?我应该以某种全局方式实例化 SelectedRound 类吗?如果是这样,怎么办?也许是应用代表?(我也在努力做到这一点)。

对我来说,设置和获取一个简单的字符串变量似乎毫无意义。

单点触控集属性不保留属性值

这感觉就像是关于如何将 SelectedRound 实例从第一个视图传递到第二个视图。

作为一个非常快速和肮脏的解决方案,你可以只使用单例,也可以只使用静态类:

public static class SelectedRound
{
    public static string RoundID {get;set;}
    public static string Date {get;set;}
}

对于更复杂的模式,请尝试重写两个视图控制器中的一个或两个的构造函数,以便向它们传递非静态类的共享实例。

视图控制器现在可能对您来说很陌生 - 但它们只是 c# 类 - 因此请随意通过编写覆盖、新方法和属性来扩展它们。