从不同的.cs文件访问xaml中的ListView?

时间:2018-04-23 17:45:55

标签: c# xamarin xamarin.android

我正在尝试从不可绑定的.cs文件访问XAML文件中的ListView对象。

我有一个名为“TabPage1”的XAML文件,我有一个网格布局,这是我的listview所在的位置。 https://gyazo.com/1a4d8635ffcb5acdd291bc8f92caae88

但是,我通过名为“RecieveDataFromApp”的“活动”.cs文件从android中的share选项接收共享数据,这是我处理传入数据的地方。(如左上图所示)

从这个.cs文件(RecieveDataFromApp)我想将传入的数据传递给位于xaml文件中的ListView,该文件未绑定到我的“RecieveDataFromApp.cs”文件。

https://gyazo.com/80fff3df19e19e5dbb1c5bc8e6f54995如果你在第35行检查,这就是我想要访问TabPage1.xaml中的ListView的地方。

1 个答案:

答案 0 :(得分:0)

您需要使用DependencyService将Android项目中的值转换为共享项目

在共享项目中创建接口,我们称之为IGetSmth

 public interface IGetSmth
{
    string smth { get; }

}

在你的android项目中创建名为GetSmth的类

[assembly: Xamarin.Forms.Dependency(typeof(GetSmth))]
public class Getsmth : IGetSmth
{
    public string smth
    {
        get { return ReceiveDataFromApp.SomeTextInMainActivity; }
    }
}
您在ReceiveDataFromApp活动中

最终创建SomeTextInMainActivity属性
public static string SomeTextInMainActivity { get; set; } 并且不要忘记在代码中给它一个值,你可以在共​​享项目中获得它  string SomeTextFromAndroidProject = DependencyService.Get<IGetSmth>().smth; 您可以找到示例here