如何解决如何使用Popup从另一个类调用另一个方法? SearchUsers.xaml SearchUsers.xaml.cs NewTask.xaml.cs
我正在使用Rg.Plugins.Popup plugin:
弹出窗口用于选择要分配给“新任务”页面的用户。当我从ListView
中选择一个用户时,它应该调用NewTask
页面中的另一种方法来显示所选用户。
我遇到的麻烦是,当我尝试从NewTask
类中调用另一个方法时,它什么也没做,感谢您的帮助!我需要从NewTask
类中调用SearchUsers
类中的方法以传递数据。我也尝试过使用MessagingCenter
,但仍然无法显示从SearchUsers
类到NewTask
类的数据。
SearchUsers.xaml
<StackLayout VerticalOptions="Center" Padding="20,0" HorizontalOptions="FillAndExpand">
<Frame Padding="0" BackgroundColor="White">
<StackLayout Padding="10,10,10">
<StackLayout Orientation="Horizontal">
<Label Text="Search Existing Users" HorizontalOptions="StartAndExpand" FontAttributes="Bold" VerticalOptions="Center"/>
<Button Text="Close" Clicked="ClosePopup" HorizontalOptions="End" BackgroundColor="Transparent"/>
</StackLayout>
<ScrollView x:Name="useRSScrollView">
<ListView x:Name="usersList" ItemSelected="usersList_ItemSelected">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding Name}" VerticalOptions="Center"/>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ScrollView>
</StackLayout>
</Frame>
</StackLayout>
SearchUsers.xaml.cs
public partial class SearchUsers : PopupPage
{
...
void usersList_ItemSelected(object sender,selecteditemchangedEventArgs e)
{
var selectedItem = e.SelectedItem as Users;
NewTask newT = new NewTask();
newT.SelectedUser(selectedItem);
PopupNavigation.Instance.PopAsync(true);
//displayAlert("HI",selectedItem.Email,"DONE");
//NewTask.SelectedUser(selectedItem);
//MessagingCenter.Send(new Users() { Id = selectedItem.Id,Name = selectedItem.Name,Email = selectedItem.Email },"PopUpData");
}
}
NewTask.xaml.cs
public partial class NewTask : ContentPage
{
public NewTask()
{
InitializeComponent();
}
public void SelectedUser(Users u)
{
SelectedUserView.SetValue(IsVisibleProperty,true);
SelectedUserName.Text = u.Name;
SelectedUserEmail.Text = u.Email;
//displayAlert("HI",u.Name + " : " + u.Email,"DONE");
//MessagingCenter.Subscribe<Users>(this,"PopUpData",(value) =>
//{
// SelectedUserView.SetValue(IsVisibleProperty,true);
// SelectedUserName.Text = value.Name;
// SelectedUserEmail.Text = value.Email;
//});
}
NewTask.xaml
<ContentPage Title="Add New Task" xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="TaskApp.Task.NewTask">
<ContentPage.toolbaritems>
<ToolbarItem Text="Create" Order="Primary" Clicked="AddTask"/>
</ContentPage.toolbaritems>
<StackLayout>
<TableView Intent="Form" HasUnevenRows="True">
<TableRoot>
<TableSection Title="Search Existing Users">
<ViewCell>
<StackLayout>
<StackLayout Orientation="Horizontal" Padding="13,5">
<Button Image="search.png" Text="Select a User" HorizontalOptions="FillAndExpand" Clicked="SearchUsers"/>
</StackLayout>
<StackLayout Padding="13,5" x:Name="SelectedUserView" IsVisible="false">
<Label x:Name="SelectedUserName" />
<Label x:Name="SelectedUserEmail" />
</StackLayout>
</StackLayout>
</ViewCell>
</TableSection>
...
</TableRoot>
</TableView>
</StackLayout>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。