单击网格视图项时共享项
本文关键字:共享 视图 网格 单击 | 更新日期: 2023-09-27 17:57:13
我是uwp的新手。当有人单击网格视图项目但在项目中出现错误时,我想获得共享选项。我说我没有正确使用它。所以帮帮我。
.xaml
<GridView x:Name="gridview1" ItemClick="itemclicked">
<GridView.ItemTemplate>
<DataTemplate>
<Image Source="{Binding image}" Width="120" Height="120" Margin="2"></Image>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
。.cs
loadData();
DataTransferManager datatrnsfermanager = DataTransferManager.GetForCurrentView();
datatrnsfermanager.DataRequested += new TypedEventHandler<DataTransferManager, DataRequestedEventArgs>(this.shareimagehandler);
private async void shareimagehandler(DataTransferManager sender, DataRequestedEventArgs e)
{
DataRequest request = e.Request;
request.Data.Properties.Title = "Share image";
DataRequestDeferral deferral = request.GetDeferral();
try
{
request.Data.SetBitmap(item);
}
finally
{
deferral.Complete();
}
}
private void itemclicked(object sender, ItemClickEventArgs e)
{
var item = gridview1.SelectedItem;
DataTransferManager.ShowShareUI();
}
我在
request.Data.SetBitmap(item);
在项目中
The name 'item' does not exist in the current context
你看到的原因
The name 'item' does not exist in the current context
是因为您尝试访问其范围之外的局部变量。
局部变量(请参阅本教程)只能在其"作用域"内访问。变量作用域由放置变量的位置及其访问修饰符定义。
例如,您的问题是您尝试在定义它的函数之外访问局部范围的变量"item"。
public static void FunctionOne(){
string localToFunctionOne = "This variable can only be used inside of Function One";
}
public static void FunctionTwo(){
string localToFunctionTwo = "This variable can only be used inside of Function Two";
}
在上面的示例中,您只能在声明它们的函数中使用这些变量。
如果我尝试访问FunctionTwo
内部的localToFunctionOne
,那么我会得到The variable localToFunctionOne does not exist in the current context
这是您创建的方案,也是您收到此错误的原因。
为了解决这个问题,您可以采取几种不同的途径。但是,我认为您要采取的路径是创建一个范围限定为类的变量。
public static class MyVariableExampleClass{
public static string globalVariable = "All functions in this class can see this variable";
public static void FunctionOne(){
string varibleForFunctionOne = globalVariable;
}
public static void FunctionTwo(){
string varibleForFunctionOne = globalVariable;
}
}
从此示例中可以看到,您可以从两个函数访问名为"globalVariable"的类范围变量。