我不确定第一个选项是否可以实现:本机处理 UI 事件并将共享响应返回到跨平台 xamarin 表单项目以进行进一步处理。
这是可以实现的,因为所有表单的控件都通过渲染器渲染为本机。您只能通过Custom Renderer访问本机控件。为了将共享响应返回给表单项目,您可以通过自定义控件上的自定义事件来实现这一点,就像Cusom ListView Sample的ItemSelected
事件一样:
在 PCL 中:
public class NativeListView : ListView
{
...
public event EventHandler<SelectedItemChangedEventArgs> ItemSelected;
...
}
在自定义渲染器中:
Control.ItemClick += OnItemClick;
...
void OnItemClick(object sender, Android.Widget.AdapterView.ItemClickEventArgs e)
{
((NativeListView)Element).NotifyItemSelected(((NativeListView)Element).Items.ToList()[e.Position - 1]);
}
但是,如果您的项目中有很多特定于平台的功能。使用共享项目是一个不错的选择。
如果我已经使用 .NET Standard 代码共享策略(因为 .NET 标准不支持编译器指令而需要),我也不知道是否可以使用共享项目。
我相信您需要的是将您的PCL
项目更改为共享项目。当然,一些代码修改是必要的。但这不会太多。如果你的意思是你希望你PCL
引用一个新的Shared Project
. 不,我不认为它会起作用。