的App.xaml访问XAML资源CS
<XmlDataProvider x:Key="ListData" Source="Resources\ListData.xml" XPath="/Data"/>
我能在XAML随时随地访问这个。
但是...... MainWindow.xaml.cs
InitializeComponent();
model.SetResource(this.FindResource("ListData"));
在构造App()
和MainWindow()
,this.Resources.Count = 0 this.FindResource("ListData")
回报与正确Source
但空Data
和Document
的对象。
- 来源{资源\ ListData.xml}的System.Uri
Model.cs:
internal void SetResource(object v)
{
_listData = (System.Windows.Data.XmlDataProvider)v;
_listData.InitialLoad();
}
这将运行没有异常或错误返回,但没有数据产生的。
_listData.Error null System.Exception
_listData.Document null System.Xml.XmlDocument
_listData.Data null object
如何在XAML和cs之间共享资源?
的file propertyBuild Action
设置为Resource
。这应该暗示该文件位于“namespace.filename.extension”下的清单中,其中namespace是Visual C#项目中的DefaultNamespace属性的值。
我失败,下面找到它:
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
System.Reflection.ManifestResourceInfo listDataInfo = assembly.GetManifestResourceInfo("MyNamespace.ListData.xml");
这里有提出类似的问题,但我不希望将资源复制到输出目录:http://stackoverflow.com/a/6151003/2091951 –
如果我让生成操作EmbeddedResource它显示在'assembly.GetManifestResourceNames()'中,但不能在xaml中访问。 –
使用ResourceManager可能会有其他解决方案。 查看附件项目:https://www.codeproject。COM /用品/ 835140 /一更的时间大约资源-VS-embeddedresource –