微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Popup从另一个类调用另一个方法? SearchUsers.xaml SearchUsers.xaml.cs NewTask.xaml.cs

如何解决如何使用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 举报,一经查实,本站将立刻删除。