我发现PW8.1 Runtime C#中的 ShareLinkTask 被 DataTransferManager 取代, 所以我尝试使用带有示例按钮的 DataTransferManager ,但它有效,但 MenuFlyoutItem 的问题,因为我尝试在 ListBox中共享所选项目的内容,这是我的代码
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// Register the current page as a share source.
_dataTransferManager = DataTransferManager.GetForCurrentView();
_dataTransferManager.DataRequested += OnDataRequested;
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
// Unregister the current page as a share source.
_dataTransferManager.DataRequested -= OnDataRequested;
}
protected void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs e)
{
listitem = (e.OriginalSource as MenuFlyoutItem).DataContext as WritePadFileContent;
e.Request.Data.Properties.Title = listitem.Name.ToString();
e.Request.Data.Properties.Description = "Some description"; // Optional
e.Request.Data.SetUri(new Uri(listitem.Description.ToString()));
}
// Click Button to share Web Link
private void btnShareLink_Click(object sender, RoutedEventArgs e)
{
DataTransferManager.ShowShareUI();
}
但问题是 OriginalSource 用红色下划线,错误是
错误2' Windows.ApplicationModel.DataTransfer.DataRequestedEventArgs'不包含' OriginalSource'的定义没有扩展方法' OriginalSource'接受类型' Windows.ApplicationModel.DataTransfer.DataRequestedEventArgs'的第一个参数。可以找到(你缺少using指令或程序集引用?)C:\ Users \ juste 3al faza \ Contacts \ Documents \ WritePad SDK \ WritePad_CSharpMetroSample \ WritePad_CSharpSample.WindowsPhone \ MainContent.xaml.cs 500 27 WritePad_CSharpSample.WindowsPhone
我使用 listitem =(e.OriginalSource作为MenuFlyoutItem).DataContext作为WritePadFileContent; 来获取由名称和描述定义的所选项目以共享它,并且它可以与另一种方法一起使用。
答案 0 :(得分:0)
我得到了我的解决方案并且它有效 我列出 FrameworkElement senderElement; 它属于MenuFlyout的holding方法, 那么,
protected void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs e)
{
WritePadFileContent datacontext = (WritePadFileContent) senderElement.DataContext;
e.Request.Data.Properties.Title = datacontext.Name.ToString();
e.Request.Data.Properties.Description = "Some description"; // Optional
e.Request.Data.SetText(datacontext.Description.ToString());
}