我正在尝试从不可绑定的.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的地方。
答案 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