我是UWP的新手,无法让我的XAML页面读取XML文件。我想获取XML文件中的条目并将它们加载到下拉列表中。我还没有在我的XAML页面中设置下拉列表,但我只是想读取XML文件。当我到达C#方法(Page_Loaded)时,它会收到一条错误消息,说我无法在UI线程中执行.Load命令,需要将其移动到Task.Run。这是我的XAML ......
<Page
x:Class="TestProject.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:TestProject"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" Loaded="Page_Loaded">
</Page>
这是我背后的代码......
using System.Xml.Linq;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace TestProject
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
private void Page_Loaded(object sender, RoutedEventArgs e)
{
XDocument file = XDocument.Load(@"C:\AvailableTestsXMLFile.txt");
}
}
}
//欢迎任何帮助!
//这里是确切的错误...不应在UI线程上执行同步操作。考虑在Task.Run中包装此方法。
答案 0 :(得分:2)
您可以查看此网站:UWP XmlDocument
在UWP中,您无法在没有filepicker的情况下从应用程序文件夹中访问文件。在未来的更新中,您将获得更多可能性,但现在 - 没有
尝试制作方法:
public async Task LoadXML(string file)
{
await Task.Run(() => { XDocument xml = XDocument.Load(file); });
}