MenuFlyout - код элемента - PullRequest
       5

MenuFlyout - код элемента

0 голосов
/ 28 августа 2018

Я только что создал маленькую всплывающую подсказку:

MenuFlyout flyout = new MenuFlyout();
flyout.Items.Add(new X_UWP_App.Models.MyMenuFlyoutItem() { Text = "Copy" });
flyout.ShowAt(rect);

Я могу пометить текст. После выделения текста эта всплывающая надпись появляется с надписью «Копировать». Теперь мне стало интересно, как я мог бы поставить какой-нибудь код за «Копировать»?

Я думал о чем-то подобном, но это кажется неправильным.

public void onFlyoutItemClick(object sender, FlyoutItemClickEventArgs e)
{
    var dataPackage = new DataPackage();
    dataPackage.SetText(SelGetText());
    Clipboard.SetContent(dataPackage);
}

------ часть выше получила ответ. Под этой строкой находится мой следующий связанный вопрос и ответ ----

                var dataPackage = new DataPackage();
                dataPackage.SetText(m_view.vSelGetText());
                Clipboard.SetContent(dataPackage);

Вот как на самом деле выглядят эти 3 строки. Обратите внимание, что m_view.vSelGetText () не работает. m_view не назначен в этом классе. Как я мог добиться этого, чтобы он был назначен. Потому что прямо сейчас, если я нажимаю «Копировать», он копирует «Копировать». Это ошибка, которую я получаю: «Ссылка на объект требуется для нестатического поля, метода или свойства x.m_view»

1 Ответ

0 голосов
/ 29 августа 2018

Ваш код выглядит правильно, вы реализовали MyMenuFlyoutItem, вы можете добавить onFlyoutItemClick в ваш класс, как показано ниже.

class MyMenuFlyoutItem : MenuFlyoutItem
{
    public MyMenuFlyoutItem()
    {
        this.Click += MyMenuFlyoutItem_Click;
    }

    private void MyMenuFlyoutItem_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
    {
        var dataPackage = new DataPackage();
        dataPackage.SetText(SelGetText());
        Clipboard.SetContent(dataPackage);
    }

    private string SelGetText()
    {
        return this.Text;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...