我想在我的Windows.Resources中引用MergedDictionary和本地声明的资源.但是,我收到此错误:
"添加到IDictionary的所有对象必须具有Key属性或与其关联的其他类型的键."
是否可以将本地资源与导入的资源混合在同一个Window.Resources中?
XAML是:
<Window.Resources>
<CollectionViewSource x:Key="cvsData" Source="{Binding Path=Data}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Country"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary x:Name="images" Source="pack://application:,,,/CoreWpfControls;component/Images.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
谢谢杰里米
我在测试中有以下代码:
private void LoadIncomeStatementViewModel()
{
using (var evt = new AutoResetEvent(false))
{
EventHandler handler = (sender, e) => evt.Set();
_incomeStatementViewModel.Loaded -= handler;
_incomeStatementViewModel.Loaded += handler;
_incomeStatementViewModel.LoadDataCommand.Execute(null);
evt.WaitOne();
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我运行以下测试
[Test]
public void Test()
{
LoadIncomeStatementViewModel();
// do something
LoadIncomeStatementViewModel();
// do something
}
Run Code Online (Sandbox Code Playgroud)
第二次调用LoadIncomeStatementViewModel()时,我在EventHandler处理程序中收到"安全句柄已被处置"错误消息=(sender,e)=> evt.Set();
当方法第二次重新运行时,using语句肯定会重新初始化evt.我觉得这可能与Resharper Test Runner(Nunit 2.7)有关....
有关如何解决这个问题的任何想法?
谢谢杰里米