我有ListView
且有CustomViewCell
。 CustomViewCell
只有几个按钮。
按钮:ShowProfile:此按钮弹出另一页。问题是我不知道如何Navigation.PushPopupAsync
CustomViewCell
。我还需要传递当前的CustomViewCell细节。
这是我在另一个页面中使用Navigation.PushPopupAsync
的示例,该页面工作正常,但在CustomViewCell的情况下不起作用。
Navigation.PushPopupAsync(new UserProfilePage(new ExtendedProfile(_viewModel.Profile)));
但上面的代码在CustomViewCell
中无效。
public partial class ProfileListItemViewCell : CustomViewCell
{
public ProfileListItemViewCell()
{
InitializeComponent();
}
protected override void OnBindingContextChanged ()
{
base.OnBindingContextChanged ();
}
private void MenuItemProfile_Clicked(object sender, System.EventArgs e)
{
//not working
Navigation.PushPopupAsync(new UserProfilePage(new ExtendedProfile(_viewModel.Profile)));
}
}
答案 0 :(得分:1)
您说ListView
的{{1}}每个都包含按钮,每个ViewCell
中的一个按钮应该是“查看个人资料”按钮。因此,假设每个ViewCell
代表一个用户或其他什么,您可以在事件处理程序中访问该特定单元格的绑定上下文,就像这样(假设绑定到ViewCell
的集合的类型为{{ 1}}):
ListView
答案 1 :(得分:0)
这看起来像是MessagingCenter
的工作Xamarin.Forms MessagingCenter 启用视图模型和其他组件 沟通,而不必彼此了解任何事情 除了一个简单的消息合同。
在您的Page Constructor中
MessagingCenter.Subscribe<SomeObject> (this, "MyAwesomeShowWindowMessage",
(someObject) =>
{
Navigation.PushPopupAsync(new UserProfilePage(new ExtendedProfile(someObject)));
});
来自您的手机
MessagingCenter.Send(SomeObject, "MyAwesomeShowWindowMessage");
当你退出听力页面时,不要忘记取消订阅
MessagingCenter.Unsubscribe<SomeObject> (this, "MyAwesomeShowWindowMessage"));
其他一些例子