У меня есть код, где я получаю текст текстового блока. Я делаю это в событии удержания, используя этот код txt = (e.OriginalSource as TextBlock).Text;
, но иногда он возвращает мне эту ошибку «Исключение типа« Исключение System.NullReferenceException »произошло в Barcode_QRCode.WindowsPhone.exe, но не обрабатывалось в коде пользователя« и иногда работает просто отлично » , Кто-нибудь может помочь мне здесь?e.OriginalSource is null
мой код:
private void ListViewItem_Holding(object sender, HoldingRoutedEventArgs e)
{
txt = (e.OriginalSource as TextBlock).Text;
MenuFlyout menu = new MenuFlyout();
MenuFlyoutItem item1 = new MenuFlyoutItem();
MenuFlyoutItem item2 = new MenuFlyoutItem();
MenuFlyoutItem item3 = new MenuFlyoutItem();
item1.Text = "Copiar";
item2.Text = "Deletar";
item3.Text = "Compartilhar";
item1.Click += MenuFlyout_Copiar;
item2.Click += MenuFlyout_Deletar;
item3.Click += MenuFlyout_Compartilhar;
menu.Items.Add(item1);
menu.Items.Add(item2);
menu.Items.Add(item3);
menu.ShowAt((FrameworkElement)sender);
}
Его трудно помочь вам с предоставленной информацией. Все, что я могу сказать, это то, что оператор 'as' возвращает null, если он не может преобразовать левую сторону в правую сторону. Вы можете проверить, что 'e.OriginalSource' не является нулевым и что преобразование не является нулевым, прежде чем пытаться получить из него свойство' .Text'. –
@ JoséAugustoAcorsi это не означает, что 'OriginalSource' равно null? Вы подтвердили, что это так? Это также может означать, что это не 'TextBlock', в этом случае' e.OriginalSource как TextBlock' даст вам значение null – dkozl