C# 读取给定文件Windows Phone 8.1

C# 读取给定文件Windows Phone 8.1,c#,windows-phone-8,windows-phone-8.1,C#,Windows Phone 8,Windows Phone 8.1,我尝试根据用户文本框输入读取某个文件 案例: 有两个文件:A和B。用户在TextBox.Text属性中键入“A”,然后单击按钮从文件加载数据 文件由JSONConverter处理,然后显示在UI中 问题: 当将文件名硬编码到函数中时,此功能可以正常工作。 如何使其读取SearchBox.Text属性以查找所需文件?如果我使用string name=SearchBox.Text和string fileName=name+“.json”它会返回为不同线程封送的调用接口的应用程序。-可能是因为我试图从

我尝试根据用户文本框输入读取某个文件

案例: 有两个文件:
A
B
。用户在
TextBox.Text
属性中键入“A”,然后单击按钮从文件加载数据

文件由JSONConverter处理,然后显示在UI中

问题: 当将
文件名
硬编码到函数中时,此功能可以正常工作。 如何使其读取
SearchBox.Text
属性以查找所需文件?如果我使用
string name=SearchBox.Text
string fileName=name+“.json”
它会返回
为不同线程封送的调用接口的应用程序。
-可能是因为我试图从UI读取,该UI是为不久后执行的UI线程保留的?(我是新来的,我尽量理解错误)

public async void DownloadDataAsync()
{
//string fileName=SearchBox.Text;这不起作用-它不会给出遵从性错误,
string fileName=“A.json”;//如果设置为“硬编码”,程序将正确执行。
StorageFile file=Wait Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@“Assets\HerodataJSON\”+文件名);
字符串文件内容;
使用(StreamReader sRead=newstreamreader(wait file.OpenStreamForReadAsync()))
fileContent=await sRead.ReadToEndAsync();
wait Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,()=>
{                    
HerodataHero=JsonConvert.DeserializeObject(fileContent);
HeroName.Text=hero.HeroName;
CounteredByList.Text=String.Join(“\r\n”,hero.Counteredby);
CountersList.Text=String.Join(“\r\n”,hero.Counters);
herotrait.Source=新的位图图像(新的Uri(hero.IMGurl));
});
}
私有void BtnDownloadData_单击(对象发送者,路由目标e)
{            
任务t=新任务(DownloadDataAsync);
t、 Start();
}

旁注:这将是一个应用程序,显示其中一个游戏的“英雄信息”,从而命名对象

不能从后台线程访问UI元素。一个快速解决方法是事先读取值,然后将其传递给您的方法:

private void BtnDownloadData_Click(object sender, RoutedEventArgs e)
{            
    var fileName = SearchBox.Text;
    Task t = new Task(() => DownloadDataAsync(fileName));
    t.Start();          
}
并将另一种方法的签名更改为:

public async void DownloadDataAsync(string fileName)
public async void DownloadDataAsync(string fileName)