【发布时间】:2018-03-07 15:07:43
【问题描述】:
在 UWP 中,我如何在程序集中获取所有页面对象及其对应字符串名称的列表。例如,如果我创建了一个名为 Page1、Page2 和 Page3 的 Page,并使用带有控件的 XAML 填充这些页面,我该如何动态创建所有 Page 对象及其对应对象的列表字符串名称?
我有一些适用于 WPF 的代码,我想知道如何在 UWP 中做类似的事情:
class MyPage : Page {
public List<Uri> GetXamlFiles()
{
var pages = new List<Uri>();
var asm = System.Reflection.Assembly.GetExecutingAssembly();
Stream stream = asm.GetManifestResourceStream(
asm.GetName().Name + ".g.resources");
DataContext = pages;
using (var reader = new System.Resources.ResourceReader(stream))
{
foreach (System.Collections.DictionaryEntry entry in reader)
{
pages.Add(new Uri(((string)entry.Key).Replace(".baml", ".xaml"),
UriKind.Relative));
}
}
return pages;
}
public ObservableCollection<TXamlPage> XamlPages = null;
private void Page_Loaded(object sender, RoutedEventArgs e)
{
List<Uri> pages = GetXamlFiles();
XamlPages.Clear();
foreach (var uri in pages)
{
XamlPages.Add(new TXamlPage { uri = uri, Name = System.IO.Path.GetFileName(uri.LocalPath)});
}
A1ListBoxPages.ItemsSource = pages;
}
} //class
public class TXamlPage
{
public string Name;
public Uri uri;
public override string ToString()
{
if (Name == null) return "<null>";
return Name;
}
}
【问题讨论】: